DAO自动生成与使用
数据库相关的操作与数据结构放在dao
与model
中,在GoFrame中,dao
与model
的内容可以自动生成。生成步骤如下:
- 配置
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章节
- 在命令行中执行如下命令
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()