roger2001c 发表于 2016-11-26 08:14:24

MyBatis(3.2.7)的缺点

  以下是我用MyBatis感觉不爽的地方, 当然也有可能是我不够了解, 如果有错误, 请指正

[*]不同命名空间的<resultMap><sql>等声明不能共享
[*]默认注册(org.apache.ibatis.type.TypeAliasRegistry)的类型别名太少, 比如想用Set但是没有注册
[*]Configuraton XML默认不支持第三方Datasource, <dataSource>标签只能选择UNPOOLED , POOLED, JNDI
[*]缓存设置(比如mybatis-ehcache)无法指定缓存配置文件的位置,只能放在classpath根目录下
[*]缓存还是跟Hibernate一样, 造成数据改变的所有操作都会让命名空间的所有缓存清除, 不过这个也没办法, 毕竟作为框架, MyBatis并不知道更新的数据会影响到哪些缓存.
[*]代码注释太少, 太多的方法都没有注释, 如果一个应用没有注释倒是可以理解毕竟只是少数人维护, 最为一个框架, 注释太少让人看起来就吃力了就会阻碍这个框架的发展.
[*]最后一点, 其实真的没有像官方说的那样同JDBC比较会省去95%的代码量. 如果没有用生成器(也不好用), mapper xml, mapper java, 对应的service, service impl都要写代码量还是不少的.
  比较好的就是那个动态SQL功能还不错, 如果不同空间的<resultMap><sql>能重用的话就好了, 毕竟有些查询时需要用到多个表的, 但也不方便把多个表的操作都写到一个mapper文件里, 不能重用就导致很多定义是重复的.
页: [1]
查看完整版本: MyBatis(3.2.7)的缺点