使用 Go-Ora 连接到 Oracle 数据库

alt

前文 《 一鍵啓動 Oracle 23c Free 》 介绍了如何使用容器技术快速拉起 Oracle 23c 数据库。

这个开发者版本可以很便捷的拉起、测试、销毁,对开发者是非常友好的。

本文将介绍如何使用 Go 语言构建项目,并连接到 Oracle 数据库。

Go 环境配置

本文使用的是 Go 1.21 版本。

下载安装包,并解压。

wget https://studygolang.com/dl/golang/go1.21.8.linux-amd64.tar.gz
tar zxf go1.21.8.linux-amd64.tar.gz

将二进制目录添加到环境变量中。

echo 'export PATH=/home/mysql/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

查看 Go 版本。

go version
$ go version
go version go1.21.8 linux/amd64

创建一个 Go 的测试项目

Go 语言环境配置完成后,我们来初始化一个新项目。

具体步骤如下:

1. 创建项目目录

创建项目目录 mygo

mkdir mygo
cd mygo

2. 初始化项目

使用 go mod init 命令初始化项目。

go mod init github.com/shawn0915/mygo
$ go mod init github.com/shawn0915/mygo
go: creating new go.mod: module github.com/shawn0915/mygo

3. 创建 Go 文件

创建项目主文件。

touch main.go

在主文件中添加如下代码。

package main
 
import "fmt"
 
func main() {
    fmt.Println("Hello, World!")
}

3. 运行 Go 程序

运行 Go 程序:

go run .
$ go run .
Hello, World!

这将编译并运行 main.go 中的程序,并输出 Hello, World!

相信通过这个小案例,大家已经对 Go 项目有初步的了解。

使用 go-ora 驱动连接到 Oracle

接下来演示如何使用 go-ora 驱动连接到 Oracle 数据库。

go-ora 是由 Go 语言实现的 Oracle 客户端,推荐使用 go-ora v2 版本,对 Oracle 10.2 及以上版本更友好。

下面是代码示例,以供参考。

连接到 Oracle

导入 go-ora 驱动,并创建连接。

import (
    "database/sql"
    "fmt"
    "log"

    goora "github.com/sijms/go-ora/v2"
)

func main() {
    // Oracle 数据库连接信息
    dsn := go_ora.BuildUrl("${oracle_host}"${oracle_port}"${oracle_sid}""${oracle_user}""${oracle_password}", nil)

    // 创建数据库连接
    db, err := sql.Open("goora", dsn)
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 检查连接
    err = db.Ping()
    if err != nil {
        log.Fatal(err)
    }
}

这里需要将数据库连接信息替换为实际的值,这段代码中并没有使用其他连接参数,所以最后一个值为 nil

需要注意的是,为了安全起见,不要在代码中硬编码数据库连接信息,这里只是为了演示,建议在正式环境中使用环境变量或配置文件来管理敏感信息。

查看版本信息

创建查询,并将查询结果打印出来。

var banner string
querySQL := "SELECT banner FROM v$version"
err = db.QueryRow(querySQL).Scan(&banner)
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Oracle Version: %s\n", banner)

运行程序

运行程序,可以得到版本信息。

$ go run .
Oracle Version: Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

小结

本文展示了 go-ora 驱动的基本用法。当然还有其他驱动可以使用,比如 GODROR

GODROR 是一个活跃的 Oracle 驱动,基于官方的 ODPI-C (Oracle Call Interface (OCI) wrapper) 接口。

需安装依赖:

go get github.com/godror/godror@latest

在实际生产环境中,你或许会使用 ORM 库来简化数据库操作,而不是直接使用 database/sql 包。

常见的 Go 语言连接 Oracle 数据库的 ORM 框架有:

  1. XORM

XORM 是简单而强大的开源 ORM 框架,支持 godror 和 go-oci8 这两种 Oracle 驱动。

安装依赖:

go get xorm.io/xorm
  1. GORM

支持 Oracle 12c 及以上版本。但已经三年未更新,不建议用于生产环境。

安装依赖:

go get github.com/cengsin/oracle

不过,对于理解底层工作原理和进行特定测试、优化,直接使用数据库驱动 和 database/sql 包是有价值的。

-- END. --

alt

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

本文由 mdnice 多平台发布

相关推荐

  1. 使用Ora2Pg迁移oracle数据openGauss

    2024-04-09 13:12:03       40 阅读
  2. Go】如何使用 Go 连接 MySQL 数据库

    2024-04-09 13:12:03       23 阅读
  3. Oracle数据库连接方式

    2024-04-09 13:12:03       41 阅读
  4. Oracle连接使用

    2024-04-09 13:12:03       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 13:12:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 13:12:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 13:12:03       82 阅读
  4. Python语言-面向对象

    2024-04-09 13:12:03       91 阅读

热门阅读

  1. 【算法】最长连续递增序列 - 贪心算法

    2024-04-09 13:12:03       30 阅读
  2. 渗透测试概述

    2024-04-09 13:12:03       37 阅读
  3. hadoop中hdfs的fsimage文件与edits文件

    2024-04-09 13:12:03       34 阅读
  4. 十分钟学会WebSocket

    2024-04-09 13:12:03       37 阅读
  5. redis集群搭建教程

    2024-04-09 13:12:03       38 阅读