1、入门方面:Hibernate入门门槛相对较高,Ibatis入门相对比较简单。
2、代码量编写方面:同样的需求,Ibatis写的代码相对Hibernate要多。
3、维护方面:因为Ibatis的sql都保存在单独的文件中,修改起来相对容易,而Hibernate可能在代码中嵌入HQL语句,维护时需要修改源代码。
4、封闭性方面:Hibernate是全封闭式的,Ibatis是半封闭式的。
Hibernate全封闭是指它基本是完全自动生成SQL的,而Ibatis主要是靠开发人员手动编写SQL语句。
5、性能方面:Ibatis更易对SQL的性能进行优化,而且可以支持存储过程。
6、更细粒度的优化,比如一个表有8个字段,其中有2个字段占空间较大,但是需要的是另外3个空间很小的字段,Hibernate因为一般检索的都是Class,所以是检索出了所有字段,浪费流量;而Ibatis只检索所需的字段,节省流量。
7、多数据库支持方面:Ibatis对不同的数据库支持不太好,而Hibernate却可以同时支持多种数据库。
总而言之:如果一个项目是全新设计的,则用Hibernate较好,如果一个项目是二次开发的,不能对数据库结构做到控制和修改时,则用Ibsatis较好。
refurl:http://developer.51cto.com/art/200907/137076.htm
http://blog.csdn.net/ctojxzsycztao/article/details/2308759
http://www.blogjava.net/szhswl/articles/169817.html