标签:提高 highlight select get 不同的 where tcp sel pos
第三方库sqlx
能够简化操作,提高开发效率。
go get github.com/jmoiron/sqlx
package main import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/go-sql-driver/mysql" // init() ) // Go连接MySQL示例 var db *sqlx.DB // 是一个连接池对象 func initDB() (err error) { // 数据库信息 // 用户名:密码@tcp(ip:端口)/数据库的名字 dsn := "root:root@tcp(127.0.0.1:3306)/sql_test" // 连接数据库 db, err = sqlx.Connect("mysql", dsn) if err != nil { return } db.SetMaxOpenConns(10) // 设置数据库连接池的最大连接数 db.SetMaxIdleConns(5) // 设置最大空闲连接数 return } type user struct { ID int Name string Age int } func main() { err := initDB() if err != nil { fmt.Printf("init DB failed, err:%v\n", err) return } sqlStr1 := `select id, name, age from user where id=1` var u user db.Get(&u, sqlStr1) //通过反射知道u有什么字段 fmt.Printf("u:%#v\n", u) var userList []user sqlStr2 := `select id,name, age from user` err = db.Select(&userList, sqlStr2) if err != nil { fmt.Printf("select failed, err:%v\n", err) return } fmt.Printf("userList:%#v\n", userList) }
不同的数据库中,SQL语句使用的占位符语法不尽相同。
数据库 | 占位符语法 |
---|---|
MySQL | ? |
PostgreSQL | $1 , $2 等 |
SQLite | ? 和$1 |
Oracle | :name |
标签:提高 highlight select get 不同的 where tcp sel pos
原文地址:https://www.cnblogs.com/yzg-14/p/12292864.html