查询数据
Db()
可以通过 tg.Db() 去指定表和数据源,接收两个参数,第二个参数选填,不传默认会读取 config/config.yaml 里的数据库配置
注意:
Select()FindOne()Count()这种执行查询动作的要放到链路的末尾。- 查询操作默认查询的都是
delete_time为NULL的数据, 想查询所有内容请多加一个.ALL() Insert()InsertAll()Update()Decr()Incr()Delete()这种增删改动作的也要放到链路的末尾。- 以上这些动作均可以通过传入参数来控制是否打印当前的SQL语句到控制台,例如:
FindOne(&user, tg.FindOneOption{ Debug: true })具体怎么传请看对应的文档说明
- @param
tableName表名 - @param
tg.Source数据源tg.Source{} - -------@param
Link数据库连接字符串 - -------@param
Debug是否打印最终执行的SQL语句,默认不打印 - -------@param
CreateTime创建时间字段名,默认 create_time - -------@param
UpdateTime更新时间字段名,默认 update_time - -------@param
DeleteTime删除时间字段名,默认 delete_time - -------@param
MaxOpen最大打开连接数 - -------@param
MaxIdle最大空闲连接数 - -------@param
MaxIdleTime连接在空闲状态下的最大存活时间 - -------@param
MaxLifeTime连接的最大生命周期,从创建到被关闭的总时间
查询一条数据 FindOne()
- @param
scan需要映射的结构体指针 - @param
options设置选项, 选填可不传tg.FindOneOption{} - -------@param
Debug是否打印最终执行的SQL语句,默认不打印 - -------@param
DeleteTime删除时间字段名,默认 delete_time
var user User
err := tg.Db("user").Where("age", ">", 10).FindOne(&user)var user User
err := tg.Db("user").Where("age", ">", 10).FindOne(&user)最终生成的SQL语句为:
SELECT * FROM user WHERE age > 10 AND delete_time IS NULL LIMIT 1SELECT * FROM user WHERE age > 10 AND delete_time IS NULL LIMIT 1查询数据集 Select()
- @param
scan需要映射的结构体指针 - @param
options设置选项, 选填可不传tg.SelectOption{} - -------@param
Debug是否打印最终执行的SQL语句,默认不打印 - -------@param
DeleteTime删除时间字段名,默认 delete_time
var user []User
err := tg.Db("user").Where("age", "=", 10).Select(&user)var user []User
err := tg.Db("user").Where("age", "=", 10).Select(&user)最终生成的SQL语句为:
SELECT * FROM user WHERE age = 10 AND delete_time IS NULLSELECT * FROM user WHERE age = 10 AND delete_time IS NULL多数据源查询
Db('user', tg.Source{}).Where('age', '>', 10).Select()
Db('user', tg.Source{}).Where('age', '>', 10).Select()Db('user', tg.Source{}).Where('age', '>', 10).Select()
Db('user', tg.Source{}).Where('age', '>', 10).Select()查询包括软删除的所有数据 ALL()
var user []User
err := tg.Db("user").Where("age", "=", 10).ALL().Select(&user)var user []User
err := tg.Db("user").Where("age", "=", 10).ALL().Select(&user)最终生成的SQL语句为:
SELECT * FROM user WHERE age = 10SELECT * FROM user WHERE age = 10