mybatis分步查询与延迟加载
Posted 云晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis分步查询与延迟加载相关的知识,希望对你有一定的参考价值。
1.分步查询
先查询用户的部门
部门Mapper.xml
<resultMap id="rMap" type="com.yunqing.mybatis.bean.Department"> <id column="id" property="id"/> <result column="department" property="departmentName"/> </resultMap> <select id="getDepByIdStep2" resultMap="rMap"> SELECT id,department FROM t_dep WHERE id=#{id} </select>
再通过查用户查出部门
用户Mapper.xml
<resultMap id="rMap" type="com.yunqing.mybatis.bean.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/>
<!--depUser实体类中的Department dep;select中的内容是查询DepartmentMapper接口的getDepByStep2方法;dep_id是User数据库表字段名-->
<association property="dep" select="com.yunqing.mybatis.dao.DepartmentMapper.getDepByIdStep2" column="dep_id"> </association> </resultMap> <select id="getUserByIdStep1" resultMap="rMap"> SELECT * FROM t_user WHERE id=#{id} </select>
2.延迟加载
分部查询的好处是可以延迟加载,只有在需要时才查询部门,不需要时可以不用查询部门。
需要在分部查询的基础上加上两个设置。
<settings> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> </settings>
以上是关于mybatis分步查询与延迟加载的主要内容,如果未能解决你的问题,请参考以下文章
[mybatis]映射文件_select_resultMap_关联查询_association分步查询&延迟加载