Go语言作为一门静态类型、高效的编程语言,在应用开发领域得到了越来越广泛的应用。而Oracle数据库则是一款功能齐全、稳定可靠的数据库系统,在很多领域都有着广泛的应用。
本文将介绍如何使用Go语言查询Oracle数据库,包括连接数据库、查询数据、插入数据等操作。
1. 安装Oracle驱动
首先我们需要安装Go语言连接Oracle数据库的驱动。目前市场上有多个开源的Oracle驱动,比如Oracle-ODBC。在本文中,我们将使用denisenkom/go-mssqldb,安装方式如下:
go get -u -v github.com/denisenkom/go-mssqldb
2. 连接Oracle数据库
连接Oracle数据库需要指定数据库的地址、用户名、密码、以及要连接的数据库名称。具体代码如下:
package mn
import (
"database/sql"
_ "github.com/denisenkom/go-mssqldb"
)
func mn() {
connString := "server=your-server;user id=your-user-name;password=your-password;database=your-db-name"
db, err := sql.Open("mssql", connString)
if err != nil {
log.Fatal("Open connection fled:", err.Error())
}
defer db.Close()
err = db.Ping()
if err != nil {
log.Fatal("Cannot connect: ", err.Error())
}
fmt.Println("Connected successfully!")
}
3. 查询数据
查询数据是使用Go操作Oracle数据库中最常见的操作之一。具体代码如下:
package mn
import (
"database/sql"
_ "github.com/denisenkom/go-mssqldb"
)
func mn() {
connString := "server=your-server;user id=your-user-name;password=your-password;database=your-db-name"
db, err := sql.Open("mssql", connString)
if err != nil {
log.Fatal("Open connection fled:", err.Error())
}
defer db.Close()
var (
id int
name string
)
rows, err := db.Query("SELECT id, name FROM your-table-name")
if err != nil {
log.Fatal("Error when querying data:", err.Error())
}
defer rows.Close()
for rows.Next() {
err := rows.Scan(&id, &name)
if err != nil {
log.Fatal("Error when scanning data:", err.Error())
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
}
4. 插入数据
插入数据与查询数据类似,也是经常使用的操作。具体代码如下:
package mn
import (
"database/sql"
_ "github.com/denisenkom/go-mssqldb"
)
func mn() {
connString := "server=your-server;user id=your-user-name;password=your-password;database=your-db-name"
db, err := sql.Open("mssql", connString)
if err != nil {
log.Fatal("Open connection fled:", err.Error())
}
defer db.Close()
tx, err := db.Begin()
if err != nil {
log.Fatal("Begin transaction fled:", err.Error())
}
stmt, err := tx.Prepare("INSERT INTO your-table-name(id, name) VALUES(?, ?)")
if err != nil {
log.Fatal("Prepare statement fled:", err.Error())
}
defer stmt.Close()
_, err = stmt.Exec(1, "Alice")
if err != nil {
log.Fatal("Exec statement fled:", err.Error())
}
_, err = stmt.Exec(2, "Bob")
if err != nil {
log.Fatal("Exec statement fled:", err.Error())
}
err = tx.Commit()
if err != nil {
log.Fatal("Commit transaction fled:", err.Error())
}
fmt.Println("Data inserted successfully!")
}
综上所述,本文介绍了如何使用Go语言连接Oracle数据库,并实现了数据的查询和插入操作。希望本文能够对读者有所帮助。