Hibernate VS MyBatis
1、MyBatis就是iBatis的演进,这个我知道。
2、我不想引起Hibernate和Mybatis的口水仗,关于这个的孰是孰非,JE上有很多。
3、关于O/RMapping的理论,网上也有很多。其实完整的O/Rmapping理论是想让程序员从数据的CRUD中解放出来,专注于使用OO的思想来实现业务逻辑,使用OO的思想当然就很大程度上需要遵守SOLDI原则,而不是一会要用OO的眼光建立业务领域模型,一会要用Relation的数学观点来操作数据。
4、还有一点,在O/RMapping也提到了,就是要让那些不熟悉SQL的人也能开发需要数据存储的工程,所以才有了HQL等等的框架级别的查询语句。
5、从3和4上面的角度出发,可以看出MyBatis和Hibernate根本就不是一个方向的东西。
6、MyBatis是假设你对SQL语句比较熟,至少能够进行你需要的CRUD的语句,但是对于那些麻烦的Connection、ResultSet和Statement比较讨厌,那么你可以选择这个,因为他保持住了使用SQL语句的灵活,任何你想要使用SQL进行的操作,不管你是简单的插入删除,还是设计到跨分区加强制索引的查询,甚至于调用存储过程等都可以完成。
7、Hibernate则是比较完整的O/RMapping实现,在开发的过程中你完全可以不用写SQL语句,只要涉及到你的领域模型就可以了,在设计领域模型的时候完全可以使用SOLDI原则。只要你回Hibernate提供的HQL就可以了。但是这个能否调用存储过程我就不知道了。(当然我觉得还是会一点SQL语句的好一些,至少你可以直接通过PLSQL等工具来验证数据的正确与否)