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

Java Web开发
Java Web开发:UML的概念和模型
Java Web开发:Spring中的Web Context
Java Web开发:小编谈J2EE何存优势?
Java Web开发:Javaweb基础之Connection 接口浅析
Java Web开发:小编对新手学习jsp的六条建议建议
Java Web开发:小编谈如何成为一个优秀的jsp程序员
Java Web开发:小编谈J2EE 技术中的那些事
Java Web开发:小编浅谈J2EE技术
Java Web开发:小编浅谈JavaScript小技巧
Java Web开发:小编浅谈JavaScript小技巧(2)
Java Web开发:小编浅谈JavaScript小技巧(3)
Java Web开发:小编浅谈JavaScript小技巧(4)
Java Web开发:小编浅谈JavaScript小技巧(5)
Java Web开发:小编浅谈JavaScript小技巧(6)
Java Web开发:小编浅谈JavaScript小技巧(7)
Java Web开发:小编浅谈JavaScript小技巧(8)
Java Web开发:小编浅谈JavaScript小技巧(9)
Java Web开发:小编浅谈JavaScript小技巧(10)
Java Web开发:小编浅谈JavaScript小技巧(11)
Java Web开发:小编浅谈JavaScript小技巧(12)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 595 ::
收藏到网摘: 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"