[align=center]第一部分:先介绍Hibernate的替代方案和Hibernate的缺点[/align]
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反应迟钝的案例!希望加以总结!
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反应迟钝的案例!希望加以总结!