Golang Go语言中基于gormgen修改的gormgen代码生成器
今天新增了一些功能,如下:
var (
data = &model.Lang{}
session = &model.Session{}
)
data = dao.Lang.ByName("XXX")
// where name = 'XXX'
data = dao.Lang.ByCode("XXX")
// where code = 'XXX'
data = dao.Lang.SetName("dasd").ByCode("XXX")
// where name = 'XXX' and code = 'XXX'
data, err = dao.Lang.Get(12) //单主键(相当于快捷的 First())
data = dao.Lang.MustGet(12) //单主键
session = dao.Session.MustGet(1, 2)
err = dao.Lang.MustDelete(12) //单主键
err = dao.Session.MustDelete(12, 22) //多主键(会假设有多个主键那么就支持传入多个参数。。。)
return nil
//之前的写法
{
var (
u = dao.Lang
)
first, err := u.Where(u.Code.Eq("xxx"), u.Name.Eq("xxx")).First()
}
上面的 SetXXX/ByXXX 仅对 UniqueIndex 的字段默认自动生成,其他字段需要手动配置启用 和官方不同的是还实现了一些额外的功能( 可以傻瓜式自动生成 gen ,只需要提前写好 gorm 的 struct 即可 也就是先手写数据库结构,再用这个工具生成
之前 pr 给过原始仓库,没合并,也就懒得折腾了。。。有兴趣的可以看看
自行研究食用方法
Golang Go语言中基于gormgen修改的gormgen代码生成器
更多关于Golang Go语言中基于gormgen修改的gormgen代码生成器的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
没看懂和官方的有啥区别,这不是一个意思么<br>dao.Lang.ByName("XXX")<br>
<br>dao.Lang.Eq("XXX")<br>
更多关于Golang Go语言中基于gormgen修改的gormgen代码生成器的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
dao.Lang.ByName(“XXX”) 直接拿到结果了
dao.Lang.XXX.Eq(“XXX”)只是一个条件语句 相当于 where(xxx,xxx)
官方的写法要达到相同的效果
var (
u = dao.Lang
)
first, err := u.Where(u.Code.Eq(“xxx”)).First()
至少需要这么写。。。
在Golang生态中,GORM是一个非常流行的ORM(对象关系映射)库,用于简化数据库操作。gormgen
作为GORM的一个代码生成器工具,能够根据数据库表结构自动生成相应的GORM模型代码,极大地提高了开发效率。
如果你正在基于gormgen
进行修改以定制代码生成逻辑,这里有几个关键点需要注意:
-
理解源码:首先,深入阅读
gormgen
的源码,理解其工作原理,包括如何解析数据库表结构、如何生成Go代码等。 -
定制模板:
gormgen
通常使用Go的文本/模板库来生成代码。你可以通过修改这些模板文件来调整生成的代码结构或风格。 -
扩展功能:根据需求,可能需要添加额外的功能,比如处理复杂的表关系、生成测试数据等。这通常涉及修改或扩展
gormgen
的核心逻辑。 -
测试与验证:每次修改后,都要进行充分的测试,确保生成的代码正确无误,并且符合你的预期。
-
文档与分享:如果修改后的
gormgen
具有通用性,考虑将其开源,并编写详细的文档,以便其他开发者也能受益。
总之,基于gormgen
修改代码生成器是一个既具有挑战性又充满乐趣的过程。通过深入了解其工作原理,你可以根据自己的需求定制出高效的代码生成工具,进一步提升开发效率。