关于Mybatis中Mapper是使用XML还是注解的一些思考
XML 据说可以灵活的进行注解,但是修改以后还是要重新发布程序。当然,你可以说,在Tomcat中改了,然后热加载了,不就可以了。可是一般情况下都是几台,十几台服务器。都是用发布系统,持续集成的方式部署。这点灵活性也就没什么意义了。当然,一定要说XML支持好,这点我不否认。然而在注解中支持了大部分功能,如果实在复杂一点的SQL可以使用<script>方式或者使用Provider也行。
那再说,ResultMap支持的不好,但从3.某个版本,支持使用id,这样也可以在一定程度上进行复用了。
如果再说,Result 不支持继承,这。。,我暂时没有从注解中找相应的解决方案。
在XML中最不爽的一点,就是一个接口定义好了,如果要查SQL还要去另一个文件中查找。来回切换,比较消耗精力,特别是在查找问题的时候。
如果要说我把SQL跟代码混在一起了,的确是这样。
注解除了XML认为的灵活外,但它可以自定义一些注解 https://www.jianshu.com/p/03642b807688 (自定义 in , update 注解)
另外,今天花了几个小时的时间做了一个把XML转为注解代码小工具,没什么技术含量,
对于些复杂的转换还是不太成功,至少可以减少手工时间,把这点时间用来喝一杯也好。
mybatis xml mapper to annotation
代码地址: https://github.com/zbw911/mybitis-xmlmapper2annotation