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