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

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

  •  
  •   odirus · 2018-03-22 14:31:49 +08:00 · 4072 次点击
    这是一个创建于 2220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:

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

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

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

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

    感谢 V 友
    night98
        6
    night98  
       2018-03-22 18:42:46 +08:00 via Android
    mybatisplus 了解一下,我记得生成时可以指定父类
    odirus
        7
    odirus  
    OP
       2018-03-22 18:47:35 +08:00
    @night98 #6 好的,谢谢
    gejun123456
        8
    gejun123456  
       2018-03-22 18:53:35 +08:00 via Android
    https://github.com/gejun123456/MyBatisCodeHelper-Pro 插件用 mybatis generator 可以不覆盖 mapper 文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2845 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:29 · PVG 14:29 · LAX 23:29 · JFK 02:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.