golang db.v3使用

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
原文地址:https://www.cnblogs.com/elimsc/p/14979325.html