Go语言被称为是互联网时代的C语言,我们一起过一下官方的 tutorial。
首先是安装 go 语言,go 语言有多平台版,我们选择 Windows 平台的版本。下载地址为:
https://go.dev/doc/install

安装完成后,在命令行测试 go 语言是否可用
go version

然后测试 go 语言版本的 hello world,这里介绍了第一个 package fmt,这个 package 的作用是格式化输出。在 msys2 环境下将 go 可执行文件的目录加到 PATH 变量中,然后执行以下命令创建测试代码目录:
mkdir hellocd hellogo mod init example/hello

go.mod 文件用来描述依赖关系,下面准备测试代码:
package mainimport "fmt"func main() {fmt.Println("Hello, World!")}
fmt 是语言自带的 package,准备备代码可以直接运行
go run .

下面介绍外部 package,这里使用以下网址搜索需要用到的包,搜索内容为"quote"
https://pkg.go.dev/

准备测试代码:
package mainimport "fmt"import "rsc.io/quote"func main() {fmt.Println(quote.Go())}
获取依赖的 package
go mod tidy
此时发现报错,原因是网络问题,需要设置代理

重新设置代理后,外部 package 获取成功

下一步,测试 go 语言连接 Oracle 数据库,代码如下:
package mainimport "fmt"import ("database/sql"_ "github.com/sijms/go-ora/v2")func main() {conn, err := sql.Open("oracle", "oracle://user:passwd@192.168.1.1/service_name?TRACE FILE=trace.log")if err != nil {fmt.Println(err)}defer conn.Close()stmt, err := conn.Prepare("select sysdate from dual")if err != nil {fmt.Println(err)}defer stmt.Close()rows, err := stmt.Query()if err != nil {fmt.Println(err)}defer rows.Close()var data stringfor rows.Next() {rows.Scan(&data)fmt.Println(data)}}
执行代码报错,提示需要下载外部 package

按照提示手动下载依赖的包
go get github.com/sijms/go-ora/v2

最后编译代码,执行命令

从输出内容可以判断,Oracle 数据库连接上后,语句 select sysdate from dual 执行成功。
参考:
https://go.googlesource.com/go
https://go.dev/doc/tutorial/
https://github.com/golang/go/wiki/SQLDrivers
https://github.com/sijms/go-ora
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




