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