📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

使用 Golang 连接 TiDB Cloud Lake



官方 Go 驱动提供了标准的 database/sql 接口,可与现有 Go 应用无缝集成。

安装

go get github.com/tidbcloud/lake-go

Connection String:有关 DSN 格式和示例,请参见驱动概览。


主要特性

  • ✅ 标准接口:完全兼容 database/sql
  • ✅ 连接池:内置连接管理
  • ✅ 批量操作:通过事务高效执行批量插入
  • ✅ 类型安全:提供全面的 Go 类型映射

数据类型映射

TiDB Cloud LakeGo说明
整数型
TINYINTint8
SMALLINTint16
INTint32
BIGINTint64
TINYINT UNSIGNEDuint8
SMALLINT UNSIGNEDuint16
INT UNSIGNEDuint32
BIGINT UNSIGNEDuint64
浮点型
FLOATfloat32
DOUBLEfloat64
其他类型
DECIMALdecimal.Decimal需要 decimal 包
STRINGstring
DATEtime.Time
TIMESTAMPtime.Time
ARRAY(T)stringJSON 编码
TUPLE(...)stringJSON 编码
VARIANTstringJSON 编码
BITMAPstringBase64 编码

基本用法

import ( "database/sql" "fmt" "log" _ "github.com/tidbcloud/lake-go" ) // Connect to TiDB Cloud Lake db, err := sql.Open("lake", "<your-dsn>") if err != nil { log.Fatal(err) } defer db.Close() // DDL: Create table _, err = db.Exec("CREATE TABLE users (id INT, name STRING)") if err != nil { log.Fatal(err) } // Write: Insert data _, err = db.Exec("INSERT INTO users VALUES (?, ?)", 1, "Alice") if err != nil { log.Fatal(err) } // Query: Select data var id int var name string err = db.QueryRow("SELECT id, name FROM users WHERE id = ?", 1).Scan(&id, &name) if err != nil { log.Fatal(err) } fmt.Printf("User: %d, %s\n", id, name)

资源

文档内容是否有帮助?