当前位置: 网学 > 编程文档 > JAVA > 正文

选用Ibatis和Hibernate的区别

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/04
的情况下 hibernate 会更新所有字段. 当然我记得 hibernate 有一个选项可以控制只保存修改过的字段,但是我不太确定这个功能的负面效果.  例如:我需要列出一个表的部分内容,用 ibatis 的时候,这里面的好处是可以少从数据库读很多数据,节省流量select id, name from table_with_a_lot_of_column where ...一般情况下hibernate 会把所有的字段都选出来.比如说有一个上面表有8个字段,其中有一两个比较大的字段,varchar(255)/text.上面的场景中我为什么要把他们也选出来呢?用hibernate 的话,你又不能把这两个不需要的字段设置为lazy load,因为还有很多地方需要一次把整个 domain object 加载出来.这个时候就能显现出ibatis 的好处了.如果我需要更新一条记录(一个对象),如果使用 hibernate,需要现把对象 select 出来,然后再做 update.这对数据库来说就是两条sql.而ibatis只需要一条update的sql就可以了.减少一次与数据库的交互,对于性能的提升是非常重要.  3. 开发方面:  开发效率上,我觉得两者应该差不多.可维护性方面,我觉得 ibatis 更好一些.因为 ibatis 的 sql 都保存到单独的文件中.而 hibernate 在有些情况下可能会在 java 代码中保sql/hql.相对hibernate"o/r"而言,ibatis 是一种"sql mapping"的orm实现. 而ibatis 的着力点,则在于pojo 与sql之间的映射关系.也就是说,ibatis并不会为程序员在运行期自动生成sql 执行.具体的sql 需要程序员编写,然后通过映射配置文件,将sql所需的参数,以及返回的结果字段映射到指定pojo.使用ibatis 提供的orm机制,对业务逻辑实现人员而言,面对的是纯粹的java对象,这一层与通过hibernate 实现orm 而言基本一致,而对于具体的数据操作,hibernate会自动生成sql 语句,而ibatis 则要求开发者编写具体的sql 语句.相对hibernate而言,ibatis 以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间.  4. 运行效率  在不考虑 cache 的情况下,ibatis 应该会比hibernate 快一些或者很多.

 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号