Skip to content

自定义查询


ExceSql()

如果上面的ORM链式操作均满足不了你,那可以直接写sql语句查询,ExceSql()会返回sqlx连接对象,通过sqlx的方法去操作数据库

  • @param tg.Source{} 数据源,参数选填,不传默认会读取 config/config.yaml 里的数据库配置
  • -------@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 连接的最大生命周期,从创建到被关闭的总时间

ExceSql()

var user []User
db := ExceSql()
err := db.Select(&user, "SELECT * FROM user WHERE id = ?", 1)
var user []User
db := ExceSql()
err := db.Select(&user, "SELECT * FROM user WHERE id = ?", 1)

最终的SQL语句为:

SELECT * FROM user WHERE id = 1
SELECT * FROM user WHERE id = 1

注意

使用sqlx进行数据库操作,传入的映射结构体对象一定要和数据库字段对应,如果有些字段不需要映射,请用Unsafe(),具体请看 sqlx文档

备案号:冀ICP备20015584号-5