Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


快速入门

此章节将使用最简单的代码展示如何使用虚谷 Go 驱动向虚谷数据库插入,查询数据。

创表

使用 xgconsole 或其他管理工具连接虚谷数据库实例,在 SYSTEM 库中创建此章节所依赖的表。建表语句如下:

SQL
CREATE TABLE tab_test (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    created DATE
);

导入虚谷 Go 驱动

go
package main

import (
    _ "gitee.com/XuguDB/go-xugu-driver"
    "database/sql"
    "log"
)

连接数据库

使用 database/sql.Open 方法连接数据库:

go
db, err := sql.Open("xugu", "IP=127.0.0.1;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=5138;AUTO_COMMIT=on;CHAR_SET=UTF8")

执行 SQL 语句

使用 Exec 方法执行非查询 SQL :

go
_, err = db.Exec("insert into tab_test values(1,'TEST',SYSDATE);")
if err != nil {
    log.Fatal(err)
}

使用 Query 方法执行查询 SQL 并获取结果:

go
rows, err := db.Query("select * from tab_test")
var cols []string
cols, err = rows.Columns()
if err != nil {
    log.Fatal(err)
}
pvals := make([]interface{}, len(cols))
for key, _ := range pvals {
    dest := make([]byte, 216)
    Pvals[key] = &dest
}  /* end for */

for rows.Next() {
    err = rows.Scan(pvals...)
    if err != nil {
        log.Fatal(err)
    }

    for _, v := range pvals {

        fmt.Printf(“%s\t”, string(*(v.(*[]byte))))
    }
    fmt.Printf("\n")
}

完整代码

cs
package main

import (
    _ "gitee.com/XuguDB/go-xugu-driver"
    "database/sql"
    "log"
)

db, err := sql.Open("xugu", "IP=127.0.0.1;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=5138;AUTO_COMMIT=on;CHAR_SET=UTF8")

_, err = db.Exec("insert into tab_test values(1,'TEST',SYSDATE);")
if err != nil {
    log.Fatal(err)
}

rows, err := db.Query("select * from tab_test")
var cols []string
cols, err = rows.Columns()
if err != nil {
    log.Fatal(err)
}
pvals := make([]interface{}, len(cols))
for key, _ := range pvals {
    dest := make([]byte, 216)
    Pvals[key] = &dest
}  /* end for */

for rows.Next() {
    err = rows.Scan(pvals...)
    if err != nil {
        log.Fatal(err)
    }

    for _, v := range pvals {

        fmt.Printf(“%s\t”, string(*(v.(*[]byte))))
    }
    fmt.Printf("\n")
}

db.Close()