V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
luosuosile
V2EX  ›  问与答

有用 mybatis 的 generator 的吗?求指教

  •  
  •   luosuosile · 2018-12-21 11:23:54 +08:00 · 1307 次点击
    这是一个创建于 1924 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    应该也有自定义的方法,我刚开始用,就是想知道大家怎么做的。
    y547679519
        7
    y547679519  
       2018-12-21 12:26:10 +08:00
    通用 mapper 了解一下,不需要每次都重新生成
    gejun123456
        8
    gejun123456  
       2018-12-21 13:12:27 +08:00 via iPhone
    mybatis generator 可以设置覆盖的 只会覆盖 xml 里面自动生成的 sql 语句 java 接口会被覆盖掉
    觉得配置麻烦可以试试 https://github.com/gejun123456/MyBatisCodeHelper-Pro
    我开发的一个 idea 插件 里面集成了 mybatis generator 的功能 数据库加字段重新跑一下就好了 且不会删除接口中自己加的方法
    luosuosile
        9
    luosuosile  
    OP
       2018-12-21 13:32:14 +08:00
    @y547679519 这样啊 thank you
    luosuosile
        10
    luosuosile  
    OP
       2018-12-21 13:32:30 +08:00
    @gejun123456 有意思,我研究下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1001 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:59 · PVG 03:59 · LAX 12:59 · JFK 15:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.