# kingbase-gorm **Repository Path**: general252/kingbase-gorm ## Basic Information - **Project Name**: kingbase-gorm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2024-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 人大金仓数据库适配 gorm 代码引用: [go-gorm/postgres:v0.2.4](https://github.com/go-gorm/postgres/tree/v0.2.4) > 人大金仓客户端库使用 github.com/lib/pq, 所以人大金仓对gorm的适配也使用pq库(不使用pgx) > go-gorm/postgres:v0.2.4 使用github.com/lib/pq库, > 新版使用github.com/jackc/pgx/v5库 ``` package main import ( "errors" "fmt" "gorm.io/gorm" "gorm.io/gorm/logger" "log" "gitee.com/general252/kingbase-gorm" ) type Student struct { UID string `xorm:"'uid' not null unique VARCHAR(64)"` Name string Age int Index int } func init() { log.SetFlags(log.LstdFlags | log.Lshortfile) } func main() { const ( host = "192.168.88.88" port = 54321 user = "system" password = "123456" dbname = "test" ) dsn := fmt.Sprintf("kingbase://%v:%v@%v:%v/%v?sslmode=disable", user, password, host, port, dbname) db, err := gorm.Open(kingbase_gorm.Open(dsn), &gorm.Config{}) if err != nil { log.Println(err) return } db.Logger = db.Logger.LogMode(logger.Info) if true { if err = db.AutoMigrate(new(Student)); err != nil { log.Println("表同步失败", err) return } else { log.Println("表同步成功") } } var value Student if tx := db.First(&value); tx.Error != nil { if !errors.Is(tx.Error, gorm.ErrRecordNotFound) { log.Println(err) return } } log.Printf("%#v", value) } ```