mybatis generator防止覆盖自定义SQL

本文探讨了MyBatis Generator(MBG)在生成代码时遇到的两个问题:1) MBG每次运行追加到PersonMapper.xml导致错误;2) 手动添加的SQL被覆盖。解决方案包括更新MBG版本以避免XML合并和创建单独的扩展Mapper文件以保存自定义SQL。
摘要由CSDN通过智能技术生成

    用过mybatis的同学应该都知道mybatis generator(下文简称MBG)这个插件,他帮助我们生成用来操作数据库的mybatis相关代码,通常包括这三类代码:java entity、mapper xml、mapper interface.关于mybatis和MBG的基本使用,这里不多做介绍,本文主要介绍MBG生成mybatis代码过程中遇到的两个问题和解决方案。本文将以一张person表作为例子,进行讲解。

1.MBG每次运行时,生成的PersonMappper.xml追加导致项目无法启动

    在项目开发前期,我们经常遇到表结构设计不合理或者因需求变更,导致需要改动表字段的情况。那么,当我们再次运行插件生成代码时,新生成xml的内容,会默认追加到PersonMapper.xml文件中。这样就会导致xml里有两个id一样的sql,当我们启动项目时,会看到如下的报错:

   网上也有多解决方案,多大是基于继承PluginAdapter类做一些定制化的开发的方案,这种方案固然可以,但是对于开发人员的编码能力和质量是很一定考验的,并且比较耗时,占用工作量并且有风险的事情我们不做。优雅的我,不喜欢使用这种具有破坏性的方式,坚信MBG官方一定有相应的配置来支持这种需求,功夫不负有心人,在MBG的github 1.3.7版本日志里找到了如下说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值