记录几个神通数据库的问题。
异常
Failed to ping database: unknown URL option: sysdbaGoLang 案例,拿来直接用
package main
import (
"fmt"
"github.com/team-ide/go-driver/db_shentong"
"testing"
)
func TestShenTong(t *testing.T) {
dsn := db_shentong.GetDSN("SYSDBA", "szoscar55", "192.0.0.116", 2003, "OSRDB")
db, err := db_shentong.Open(dsn)
if err != nil {
panic(err)
}
sql := `select 2`
var count int
rows, err := db.Query(sql)
if err != nil {
panic(err)
}
rows.Next()
err = rows.Scan(&count)
if err != nil {
panic(err)
}
fmt.Printf("result:%d\n", count)
if count == 2 {
fmt.Println("test success")
} else {
panic("test fail")
}
}注释版
package main
import (
"fmt" // 引入 fmt 包,用于格式化输出
"github.com/team-ide/go-driver/db_shentong" // 引入神通数据库驱动
"testing" // 引入 testing 包,用于单元测试
)
func TestShenTong(t *testing.T) {
// 构造神通数据库连接字符串
// 参数依次为:用户名、密码、主机IP、端口号、数据库名
dsn := db_shentong.GetDSN("SYSDBA", "szoscar55", "192.0.0.116", 2003, "OSRDB")
// 使用连接字符串打开数据库连接
db, err := db_shentong.Open(dsn)
if err != nil {
// 如果连接失败,直接抛出异常
panic(err)
}
// 定义要执行的 SQL 语句
sql := `select 2`
// 定义一个变量,用于接收查询结果
var count int
// 执行查询
rows, err := db.Query(sql)
if err != nil {
// 如果查询失败,抛出异常
panic(err)
}
// 移动到结果集的第一行
rows.Next()
// 将查询结果扫描到 count 变量中
err = rows.Scan(&count)
if err != nil {
panic(err)
}
// 打印查询结果
fmt.Printf("result:%d\n", count)
// 判断查询结果是否符合预期
if count == 2 {
fmt.Println("test success") // 查询结果正确,测试成功
} else {
panic("test fail") // 查询结果不正确,抛出异常
}
}有各种国产数据库的 driver
https://github.com/team-ide/go-driver
















