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