Saturday, February 07, 2009

Hibernate的替代方案

不是说Hibernate不好,Hibernate有时确实反应太迟钝,速度不理想,希望大家不要在迷信Hibernate了,自动生成的SQL确实不能让人信服。但如果是做小型的开发应用,使用它能提高开发效率,值得一用。

Hibernate的替代方案有:Apache OJB,JDO,Toplink,EJB(CMP),JPA,以上是基于ORMapping的替代方案,同时市场上比较流行的另外一种框架 是:IBatis,它只对JDBC进行了简单的封装。程序员可以使用熟悉的Sql语句,利用数据库的特性对数据进行相应的优化。

不适合使用Hibernate的几种场合:

(1):如果你的程序存在大量的批量更新,批量查询时,不适合采用Hibernate。这是由于Hibernate缓存的原因。这同时也是ORMapping框架的通病。IBatis会是更合理的选择。
(2):关系错综复杂时,不适合采用Hibernate。面向对象和面向关系之间的冲突,使得"阻抗不匹配"的代价太大!
(3):如果程序使用到了数据库的特定功能,此时Hibernate并不会是你理想的选择。你要利用数据库的功能来完成优化,完成并发。这时你可以想想为什么两条实现同样功能的查询语句,执行的效率却可以天壤之别。Hibernate说到底也是需要SQL语句的。而自动生成的SQL语句,你相信它吗?

相信大家在工作中还碰到Hibernate反应迟钝的案例!等等,一定要加以总结!