springboot mybatis懒加载,mybatis懒加载原理

  springboot mybatis懒加载,mybatis懒加载原理

  懒加载,也称为嵌套查询

  需要查询关联信息时,使用框架懒加载特性可有效的减少数据库压力,首次查询只查询主表信息,关联表的信息在用户获取时再加载。

  框架一对一关联的联合和一对多的募捐可以实现懒加载。懒加载时要使用结果图,不能使用结果类型.

  这里我们以员工表和部门表为例

  通过部门与部门表编号关联

  我们这里首先需要开启一个设置

  设置!-指定哪些方法去触发延迟加载,hashCode,equals,clone,toString-setting name= lazyLoadTriggerMethods value= //设置懒加载功能是默认开启的,但这里我们也需要设置这个属性,不设置则不会触发延迟加载功能

  员工选择一个员工(int id);我们以查询单个员工为例,结果图与结构化查询语言如下

  !-定义结果映射-结果映射id=雇员映射1 type=雇员 id column= id property= id /结果属性= name column= name /结果属性= age column= age /!- fetchType为查询的类型,这里选择惰性选择为嵌套查询-association property= Dept Java type= Dept fetch type= lazy select= select Dept column= name property= name /association/result map select id= select one employee result map= employee map select id,name,age,deptId from employee where id=# { id }/select!-通过上一级结构化查询语言提供的部门查询-select id= select Dept 结果type= Dept select name from Dept where id=# { deptId }/select此处一对一,我们使用联合

  爪哇岛测试:

  public static void main(String[]args){ SQL session SQL session=mybatisutil。get SQL session();员工Dao映射器=SQL会话。获取映射器(员工道。类);员工=制图师。选择一名员工(3名);System.out.println(员工);系统。出去。println(员工。get dept());SQL会话。commit();//提交事务SQL会话。close();//关闭查询结果:

  通过结果可以看到,当我们第一次输出这个雇员对象时,部门是没有被查询的,而当我们需要使用到部门的信息时,才会去触发这个查询

  查询部门结果图与结构化查询语言如下:

  结果映射id=部门映射1 type=部门 id列= id 属性= id /结果列=名称属性=名称/!-收藏为一对多,这里一个部门包含多个员工-collection property= List Java type= List of type= Employee SELECT= SELECT Employee fetch type= lazy column= id result property= name /collection/result map SELECT id= selectOneDept result map= dept map SELECT id,name FROM dept where id=# { id }/SELECT id= SELECT Employee result type= Employee SELECT name FROM dept id=# { id }/SELECT一对多,我们使用募捐

  懒加载就介绍到这里,感谢阅读

  到此这篇关于米巴蒂斯深入解读懒加载的实现的文章就介绍到这了,更多相关米巴蒂斯懒加载内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: