odirus
V2EX  ›  问与答

MyBatis 的 Mapper 支持继承么?或者类似的解决方案

  •  
  •   odirus · Mar 22, 2018 · 4533 views
    This topic created in 2974 days ago, the information mentioned may be changed or developed.

    背景:

    本想使用 hibernate,但以后查询会很复杂,不太方便,而且入门成本颇高(高阶部分),所以现在使用的 MyBatis Generator 插件,自动生成一些常用的方法

    问题: 有时候数据库模型会稍微有些变动,所以我希望生成的文件放到一边(包括 model、dao、mapper ),其中 model、dao 可以通过继承的方式添加新功能,也不破坏生成的文件。。。但 mapper 貌似不行(我查过官方的 issue ),有没有什么类似的解决方案呢?

    目的就是生成出来的东西就放那里,别动了,以后重新生成的时候覆盖即可。

    8 replies    2018-03-22 18:53:35 +08:00
    odirus
        1
    odirus  
    OP
       Mar 22, 2018
    咦,貌似在其他 issue 发现了这个隐藏功能,先试试看
    zorui
        2
    zorui  
       Mar 22, 2018   ❤️ 1
    可以的,mapper 可以继承的 。。使用 Generator 生成的去继承你需要拓展的 mapper,对应的 mapper xml 文件可以通过写入相同的 namespace 实现。
    CFO
        3
    CFO  
       Mar 22, 2018 via Android   ❤️ 1
    我用注解方式自动生成的 mapper 以及添加的功能就是写在自己继承的 mapper 里
    zorui
        4
    zorui  
       Mar 22, 2018
    可以参考一下我的这个项目 https://github.com/zhou7rui/ssm-demo
    odirus
        5
    odirus  
    OP
       Mar 22, 2018
    @zorui #2
    @CFO #3

    感谢 V 友
    night98
        6
    night98  
       Mar 22, 2018 via Android
    mybatisplus 了解一下,我记得生成时可以指定父类
    odirus
        7
    odirus  
    OP
       Mar 22, 2018
    @night98 #6 好的,谢谢
    gejun123456
        8
    gejun123456  
       Mar 22, 2018 via Android
    https://github.com/gejun123456/MyBatisCodeHelper-Pro 插件用 mybatis generator 可以不覆盖 mapper 文件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1142 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 18:12 · PVG 02:12 · LAX 11:12 · JFK 14:12
    ♥ Do have faith in what you're doing.