English | 中文
sqlgen 是一个 SQL 代码生成工具,其支持 bun, gorm, sql, sqlx, xorm 的代码生成,灵感来自于:
go install github.com/anqiansong/sqlgen@latest
见 example
你可以通过在查询语句上方添加一个单行注释,用 fn
关键字来声明一个函数名称,例如:
-- fn: my_func
SELECT * FROM user;
其生成后代码格式为:
func (m *UserModel) my_func (...) {
...
}
当你只想要查询一条记录的需求时,你必须明确地指定 limit 1
,sqlgen 通过此表达式来判断当前查询是单记录查询还是多记录查询,例如:
-- fn: FindOne
select * from user where id = ? limit 1;
在 SQL 查询语句的编写中,你可以用 ?
来替代一个参数,也可以是具体值,他们最终都会被 sqlgen 转换成一个变量,下列示例中的两个查询是等价的。
注意: 此规则不适用于规则 2
-- fn: FindLimit
select * from user where id = ?;
-- fn: FindLimit
select * from user where id = 1;
sqlgen 支持 SQL 内置的聚合函数查询,除此之外的其他函数暂不支持,聚合函数查询的列必须要用 AS
来起一个别名,例如:
-- fn: CountAll
select count(*) as count from user;
更多查询示例, 你可以点击 example.sql 查看详情.
- 创建一个 SQL 文件
- 编写 SQL 查询语句,如建表语句、查询语句等
- 使用
sqlgen
工具,生成代码
- 目前只支持 MYSQL 代码生成
- 不支持多表操作
- 不支持联表查询