odirus
V2EX  ›  问与答

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

  •  
  •   odirus · Mar 22, 2018 · 4924 views
    This topic created in 3149 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
    odirus
    OP
    Mar 22, 2018
    1
    咦,貌似在其他 issue 发现了这个隐藏功能,先试试看
    zorui
    zorui
    Mar 22, 2018❤️1
    2
    可以的,mapper 可以继承的 。。使用 Generator 生成的去继承你需要拓展的 mapper,对应的 mapper xml 文件可以通过写入相同的 namespace 实现。
    CFO
    CFO
    Mar 22, 2018 via Android❤️1
    3
    我用注解方式自动生成的 mapper 以及添加的功能就是写在自己继承的 mapper 里
    zorui
    zorui
    Mar 22, 2018
    4
    可以参考一下我的这个项目 https://github.com/zhou7rui/ssm-demo
    odirus
    odirus
    OP
    Mar 22, 2018
    5
    @zorui #2
    @CFO #3

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