有用 mybatis 的 generator 的吗?求指教

2018-12-21 11:23:54 +08:00
 luosuosile

generator 只能生成最基础的 mapper 和 xml。

但是工作肯定会遇到需要复杂 sql,某种某条 sql 是自己用心优化过的情况。

可是每次重新 generate,都会删除原本的 mapper。

请问你们的 dao 层都是管理两套 mapper 的吗,一套 generator 自动生成的 mapper,一套自己优化手写的 mapper ?

1323 次点击
所在节点    问与答
10 条回复
zhuyao
2018-12-21 11:28:50 +08:00
在生成的 mapper 中再增加啊。
luosuosile
2018-12-21 11:31:49 +08:00
@zhuyao 但是这样重新 generate 的话不是会删除原来的 mapper 吗,维护起来会变麻烦啊,假如加了个表,想用 generator,要修改 generator 吧。。。虽然也就多一步。。。。这么看直接加也蛮好的。就是一不小心开了 generate 就没了,要回去找备份
zhuyao
2018-12-21 11:45:30 +08:00
@luosuosile 我记得生成这个实体,以及 dao,mapper 之类的是可以选择目录和包的,所以并不会覆盖你原来的。看你用的是哪个生成工具
odirus
2018-12-21 11:48:41 +08:00
我们是这样做的,例如自动生成 AMapper,可以把业务相关的 SQL 时会写到 AExtMapper ( extends AMapper )里面
luosuosile
2018-12-21 11:57:42 +08:00
@odirus 欸,有点机智啊。我觉得这样不错,不过维护两份倒也还可以,你们会用注解注入(比如 @select,@insert )的方式写 sql 吗。我有点想用那个方式,这样 generator 除了生成实体类,感觉意义也不大了。
luosuosile
2018-12-21 11:59:33 +08:00
@zhuyao org.mybatis.generator.api.MyBatisGenerator 我用的是这个的 1.35 版本,我也不知道是不是贴 maven 那个比较好,但是应该算清楚吧。里面可以选目录和包,但是不更换的话会直接覆盖,xml 倒是不会直接覆盖,,但是会全部语句再生成一遍。我看看别的生成工具吧。谢谢回复

应该也有自定义的方法,我刚开始用,就是想知道大家怎么做的。
y547679519
2018-12-21 12:26:10 +08:00
通用 mapper 了解一下,不需要每次都重新生成
gejun123456
2018-12-21 13:12:27 +08:00
mybatis generator 可以设置覆盖的 只会覆盖 xml 里面自动生成的 sql 语句 java 接口会被覆盖掉
觉得配置麻烦可以试试 https://github.com/gejun123456/MyBatisCodeHelper-Pro
我开发的一个 idea 插件 里面集成了 mybatis generator 的功能 数据库加字段重新跑一下就好了 且不会删除接口中自己加的方法
luosuosile
2018-12-21 13:32:14 +08:00
@y547679519 这样啊 thank you
luosuosile
2018-12-21 13:32:30 +08:00
@gejun123456 有意思,我研究下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519679

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX