查询数据
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 1
SELECT * 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 NULL
SELECT * 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 = 10
SELECT * FROM user WHERE age = 10