通过前几期的Mybaits3源码分析我们可以看出Mybaits其实是一个挺简单的框架,强在对sql的管理和动态化功能上。cache和transaction等功能都依赖第三方的实现,也并没有实现像Hibernate那样强大的表映射和级联功能。下面列出两个框架各自的优缺点:
Mybatis优势
•MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
•MyBatis容易掌握,而Hibernate门槛较高。
Hibernate优势
•Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
•Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
•Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
•Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
所以个人认为,如果项目比较小型的话,为了降低入门和开发难度建议使用Mybatis,如果希望为项目提供全面的持久层功能建议使用Hibernat。还有种有趣的使用方法即mybatis的sql管理功能+自定义JDBC封装(当然这对于开发人员的要求更高)。