当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > Java Web开发:iBATIS延迟加载的那点事

Java Web开发
JSP的技术方法
错误处理页面的制作404,和500
JSP动态生成并调用JSP程序
jsp防注入的代码,如何防止SQL注入的方法和预编译的PreparedStatement的代码例子
一段生成验证码图片的程序
include与jsp:include区别
jsp基础速成精华讲解
Ajax servlet实现
如何从JSP页面传送动态图片
Java中用Servlet Listener实现定时监听
JSP、Servlet中的相对路径和绝对路径
如何成为一个优秀的jsp程序员
Java开源软件六大帮派
JSP高访问量下的计数程序 (转载)
Servlet中的这些问题,你注意到了吗?
JSP解决中文乱码问题
Servlet常见错误校验表
Session和Cookie的深入研究
无限菜单之 xml+popup 版(IE5.5+)
关于hibernate多对多----many to many

Java Web开发:iBATIS延迟加载的那点事


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 592 ::
收藏到网摘: n/a

延迟加载(lazy load)Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,在我们执行sqlMap.queryForList()时,实际上ibatis只向数据库发送了一条select id, name, sex from t_user SQL。而用于获取Address记录的SQL,只有在我们真正访问address对象时,才开始执行。

这也就是所谓的延迟加载(Lazy Loading)机制。即当真正需要数据的时候,才加载数据。延迟加载机制能为我们的系统性能带来极大的提升。试想,如果我们只需要获取用户名称和性别数据,在没有延迟加载特性的情况下,ibatis会一次将所有数据都从数据库取回,包括用户信息及其相关的地址数据,而此时,关于地址数据的读取操作没有意义,也就是说,我们白白在地址数据的查询读取上浪费了大量的系统资源。延迟加载为我们妥善的处理了性能与编码上的平衡(如果没有延迟加载,我们为了避免无谓的性能开销,只能专门为此再增加一个不读取地址信息的用户记录检索模块,无疑增加了编码上的工作量)。

 ibatis配置”中的内容:

<settings

……

enhancementEnabled="true"

lazyLoadingEnabled="true"

……

/>

Settings 节点有两个与延迟加载相关的属性lazyLoadingEnabled

enhancementEnabled,其中lazyLoadingEnabled设定了系统是否使用延迟加载

机制,enhancementEnabled设定是否启用字节码强化机制(通过字节码强化机制可

以为Lazy Loading带来性能方面的改进。

为了使用延迟加载所带来的性能优势,这两项都建议设为"true"