前文 《 一鍵啓動 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 框架有:
-
XORM
XORM 是简单而强大的开源 ORM 框架,支持 godror 和 go-oci8 这两种 Oracle 驱动。
安装依赖:
go get xorm.io/xorm
-
GORM
支持 Oracle 12c 及以上版本。但已经三年未更新,不建议用于生产环境。
安装依赖:
go get github.com/cengsin/oracle
不过,对于理解底层工作原理和进行特定测试、优化,直接使用数据库驱动 和 database/sql 包是有价值的。
-- END. --
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)
本文由 mdnice 多平台发布