延迟加载、懒加载

延迟加载/懒加载
由于在mybatis的配置中存在一对一或者一对多的映射关系,比如查询用户的时候,个别时候需要查询用户的角色,但为了提高查询效率,可以使用延迟加载,什么时候使用什么时候去查询。
*使用步骤:
a.在配置文件中,设置允许懒加载


b.添加jar包
在这里插入图片描述
c.使用延迟加载查询的SQL,不能使用连接查询
d.先编写查询角色信息的方法,方法参数是角色id
RoleDao

public List<UserRole> getuserRoleById(int id);

RoleMapper.java

<!-- 懒加载的时候,当需要查询用户角色信息的时候调用此SQL语句 -->
<select id="getuserRoleById" parameterType="int" resultType="UserRole">
	select id, roleCode, roleName
	from smbms_role
	where id = #{id}
</select>

在这里插入图片描述
UserDao.java

//使用懒加载获取角色
public List<User> getUserByLazy();

UserMapper.xml

 	<!-- 懒加载地址 -->
 	<collection property="addresses" ofType="Address" 
 	 select="cn.qf.smbms.dao.AddressDao.getAllAddressInfo"
 	 column="addresses">
 	 </collection>
 </resultMap>
 <select id="getUserAddrByLazy" resultMap="userMap5">
 	select id, userName, userCode, userRole, address, phone
 	from smbms_user
 </select>

UserService.java

public List<User> getUserByLazy(){
	SqlSession session = MyBatisUtil.getSqlSession();
	List<User> users = session.getMapper(UserDao.class).getUserByLazy();
	MyBatisUtil.closeSqlSession(session);
	return users;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值