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文件里, 不能重用就导致很多定义是重复的.

猜你喜欢

转载自iintothewind.iteye.com/blog/2069537