iBatis和Hibernate之间有着较大的差异,但两者解决方案很好,因为他们有特定的领域。我个人建议使用MyBatis的,如果:
你想创建自己的SQL,并愿意维持他们.
你的环境是由关系数据模型驱动的。
你的项目工作有复杂架构的。
简单地要使用Hibernate,如果:
你的环境是由对象模型驱动的,并希望自动生成的SQL。
要计算的一些区别:
- MyBatis:
简单
更快的开发时间
灵活
封装尺寸更小
- Hibernate:
为你生成SQL,这意味着你不用花时间在SQL上。
提供了许多更先进的高速缓存
高可扩展性
另一个区别是,MyBatis利用SQL语句可能是依赖数据库,使用Hibernate的HQL是相对独立于数据库,它是更容易改变数据库。
Hibernate映射的Java作为POJO对象,MyBatis将ResultSet映射,从JDBC API给出POJO OBJETS的数据库表。
如果您使用存储过程,那么在Hibernate中可以做到这一点,但它在MyBatis比较有点困难。作为一种替代的解决方案MyBatis的映射结果集对象,所以没必要去关心表结构。这非常适用于存储过程,非常适用于报表应用程序等
最后,Hibernate和MyBatis的都是开源的对象关系映射(ORM)在同行业中可用的工具。使用这些工具的取决于你。Hibernate和MyBatis两者也有来自Spring框架的良好支持,以便它不应该是一个问题,选择其中之一。
系列文章: