Skip to main content

DAO自动生成与使用

数据库相关的操作与数据结构放在daomodel中,在GoFrame中,daomodel的内容可以自动生成。生成步骤如下:

  1. 配置dao

hack/comfig.yaml

gfcli:
gen:
dao:
link: "mysql:root:root@tcp(127.0.0.1:3306)/goframe"
tables: "book, user, dept, emp, hobby"
jsonCase: "Snake"
  • link: 数据库连接url
  • tables: 需要生成dao及model的数据表,多个表用逗号隔开
  • jsonCase: entity成员转为json时的转换方式,"Snake"为把驼峰转为下划线

以上为最简单配置,更多配置见官方文档代码生成/数据规范 gen dao章节

  1. 在命令行中执行如下命令
gf gen dao

该命令会生成dao以及model下各个表对应的结构与代码。

接下来使用各个表对应的Model对象时,不再用g.Model获取,而是用下面的的方式:

md := dao.Book.Ctx(ctx)
books, err := md.All()

该Model对象可以多次叠加查询条件:

md := dao.Book.Ctx(ctx)
md = md.WhereGT("id", 3)
md = md.WhereLT("id", 6)
books, err := md.All()

// 以上代码相当于
books, err := dao.Book.Ctx(ctx).WhereGT("id", 3).WhereLT("id", 6).All()