【TDengine】driver-go 连接器提供 database/sql 标准接口建立连接
目录
database/sql
标准接口
[TDengine] 提供了 GO 驱动程序 [taosSql
][driver-go],实现了 GO 语言的内置数据库操作接口 database/sql/driver
。
TDengine Go 连接器提供 database/sql 标准接口,使用方法简单示例如下:
package main
import (
"database/sql"
"fmt"
"time"
_ "github.com/taosdata/driver-go/v3/taosSql"
)
func main() {
var taosUri = "root:taosdata@tcp(服务端ip:6030)/"
taos, err := sql.Open("taosSql", taosUri)
if err != nil {
fmt.Println("failed to connect TDengine, err:", err)
return
}
defer taos.Close()
taos.Exec("create database if not exists test")
taos.Exec("use test")
taos.Exec("create table if not exists tb1 (ts timestamp, a int)")
_, err = taos.Exec("insert into tb1 values(now, 0)(now+1s,1)(now+2s,2)(now+3s,3)")
if err != nil {
fmt.Println("failed to insert, err:", err)
return
}
rows, err := taos.Query("select * from tb1")
if err != nil {
fmt.Println("failed to select from table, err:", err)
return
}
defer rows.Close()
for rows.Next() {
var r struct {
ts time.Time
a int
}
err := rows.Scan(&r.ts, &r.a)
if err != nil {
fmt.Println("scan error:\n", err)
return
}
fmt.Println(r.ts, r.a)
}
}
接口介绍
sql.Open(DRIVER_NAME string, dataSourceName string) *DB
该 API 用来创建database/sql
DB 对象,类型为 *DB
,DRIVER_NAME 设置为字符串 taosSql
, dataSourceName 设置为字符串user:password@tcp(host:port)/dbname
,对应于 TDengine 的高可用机制,可以使用 user:password@cfg(/etc/taos)/dbname
来使用/etc/taos/taos.cfg
中的多 EP 配置。
注意: 该 API 成功创建的时候,并没有做权限等检查,只有在真正执行 Query 或者 Exec 的时候才能真正的去创建连接,并同时检查 user/password/host/port 是不是合法。 另外,由于整个驱动程序大部分实现都下沉到 taosSql 所依赖的 libtaos 中。所以,sql.Open 本身特别轻量。
-
func (db *DB) Exec(query string, args ...interface{}) (Result, error)
sql.Open 内置的方法,用来执行非查询相关 SQL,如
create
,alter
等。 -
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
sql.Open 内置的方法,用来执行查询语句。
-
func (db *DB) Close() error
sql.Open 内置的方法,关闭 DB 对象。
相关文章
- 你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
- Go-包管理-go get(一)
- ORA-38706: Cannot turn on FLASHBACK DATABASE logging. ORACLE 报错 故障修复 远程处理
- ORA-38952: Source database not 10.0.0.0 compatible ORACLE 报错 故障修复 远程处理
- ORA-01161: database name string in file header does not match given name of string ORACLE 报错 故障修复 远程处理
- ORA-01228: SET DATABASE option required to install seed database ORACLE 报错 故障修复 远程处理
- ORA-01784: RECOVERABLE cannot be specified with database media recovery disabled ORACLE 报错 故障修复 远程处理
- SQLServer 错误 2592 修复:已为数据库 DATABASE 中的对象 OBJECT 成功重新生成了 INDEX_TYPE 索引。 故障 处理 修复 支持远程
- ORA-06316: IPA: Invalid database SID ORACLE 报错 故障修复 远程处理
- ORA-16771: failover to a physical standby database failed ORACLE 报错 故障修复 远程处理
- Go语言go mod包依赖管理工具使用详解
- Oracle 视图 NLS_DATABASE_PARAMETERS 官方解释,作用,如何使用详细说明
- How to Fix MYSQL Error 1239 and Keep Your Database Running Smoothly(mysql1239)
- SQL Server快速上手GO!(sqlserver go)
- MySQL中使用Go语言的好处(mysql中go什么)
- 提升Go读取Oracle的速度(go读取oracle速度)
- 数据库Go语言实现监控Oracle数据库(go监听oracle)
- Go语言操作Oracle数据库技术实践(go操作oracle)
- ODBC数据驱动程序连接Oracle数据库Go语言之旅(go使用oracle)
- 踏上oracle编程之路,Go(go oracle编程)
- Go语句让Oracle数据库管理更方便(oracle go语句)