https://upper.io/db.v3/examples
$ go get upper.io/db.v3
var settings = mysql.ConnectionURL{
Database: viper.GetString("db_name"),
Host: viper.GetString("db_host"),
User: viper.GetString("db_user"),
Password: viper.GetString("db_password"),
}
sess, err = mysql.Open(settings)
if err != nil {
logrus.Fatal("数据库连接失败, ", err)
}
defer sess.Close()
sess.SetLogging(viper.GetBool("db_logging"))
模型定义
type Employee struct {
ID uint64 `db:"id,omitempty"` // `omitempty` skips ID when zero
FirstName sql.NullString `db:"first_name"`
LastName string `db:"last_name"`
}
查询
// 1. 构建query builder
// 2. 使用All, One获取结果
sess.Collection("users").Find().Where(db.Cond{"id": 11}).One(&item)
插入
// 通过Collection操作
account := Account{
Name: "Eliza",
LastName: "Smith",
...
}
newID, err = sess.Collection("account").Insert(account)
// 通过SQL Builder
q = sess.InsertInto("people").Columns("name").Values("John")
res, err = q.Exec() // res is a sql.Result