当前位置: 代码迷 >> J2EE >> iBATIS仍是Hibernate
  详细解决方案

iBATIS仍是Hibernate

热度:267   发布时间:2016-04-17 23:31:43.0
iBATIS还是Hibernate
最近准备把老框架重构下,ORM部分用hibernate还是iBATIS,大家有什么好的建议吗
------解决思路----------------------
现在已经不是ibatis而是mybatis了,一般大部分在开发中感觉hibernate最大优势的也就是findById,save,update,delete只需要一个实体或id支持jpa就是了。但是这些如果对mybatis的源码非常了解的话,只要做些改造就可以让mybatis支持jpa最常用的@Id @Entity @Table @Column这些了那些findById,save,update,delete也都可以支持的。
mybatis的最大优势在于他sql的复用性,动态的sql,可以使用ognl,sql写在xml中彻底与代码分开,便于后面的维护,以及一个sql只需使用ognl就可以达到一个select标签上的sql可以给很多的模块复用,如果是到系统的复杂查询和分布式系统时mybatis的动态sql以及sql写在xml中的优势就更能体现了。
------解决思路----------------------
根据自己的熟练程度来选择持久化框架
如果自己对hibernate非常熟练的话,那就选择hibernate;如果对mybatis熟练,那就选择mybatis。
听说hibernate的一些比较高级的功能,像连表查询,多表查询对使用者的hibernate能力要求比较高,否则hibernate的效率是比较低的,因为用户不知道hibernate怎么处理多表之间的查询关系。mybatis的话,所有的sql都由自己来写,能灵活些。
------解决思路----------------------
建议是用mybatis,SQL语句写法掌握在自己手里,这样好优化些。
------解决思路----------------------
我也觉得MyBatis好驾驭一些,hibernate那些什么懒加载之类的问题,真的很头痛,mybatis自己写sql,也就没有很多if条件判断了,要什么得到什么,个人感觉性能比hibernate高些
------解决思路----------------------
都是扯淡啊 ···
都从2个框架来比
要用什么还是得看你项目的实际情况
如果对sql性能要求比较高,对hibernate又不是很精通 
还是用mybatis吧
如果对性能要求不那么高
而是各个表之间关系复杂,可以用hibernate
还有一点 如果你的sql不是很精通
用mybatis写出大把性能低下的sql的话
甚至不如hibernate自动生成的
终上所述
这个决定还是得你自己下
因为只有你了解你现在的项目情况
还有你对2个框架的熟悉程度
我2个都用过
感觉mybatis是强在sql可以自己灵活写,sql写的好性能会好一点
而hibernate强在关系映射,不用你去头疼sql各种连接查询,关联插入什么的

个人意见,如果你们团队sql写的不怎么样,干脆用hibernate 
------解决思路----------------------
个人觉得在公司里比较多人倾向用MyBatis,hibernate现在反而不多了
------解决思路----------------------
引用:
都是扯淡啊 ···
都从2个框架来比
要用什么还是得看你项目的实际情况
如果对sql性能要求比较高,对hibernate又不是很精通 
还是用mybatis吧
如果对性能要求不那么高
而是各个表之间关系复杂,可以用hibernate
还有一点 如果你的sql不是很精通
用mybatis写出大把性能低下的sql的话
甚至不如hibernate自动生成的
终上所述
这个决定还是得你自己下
因为只有你了解你现在的项目情况
还有你对2个框架的熟悉程度
我2个都用过
感觉mybatis是强在sql可以自己灵活写,sql写的好性能会好一点
而hibernate强在关系映射,不用你去头疼sql各种连接查询,关联插入什么的

个人意见,如果你们团队sql写的不怎么样,干脆用hibernate 

正解
  相关解决方案