mybatis--延迟加载

延迟加载

一、什么是延迟加载

延迟加载又叫懒加载,也叫按需加载。也就是说先加载主信息,在需要的时候,再去加载从信息。

在mybatis中,resultMap标签的association标签和collection标签具有延迟加载的功能。


二、案例

1、需求

查询订单信息,关联查询用户信息

1、  创建一个statement来查询订单信息

2、  创建一个statement来查询用户信息


2、映射文件

(1)创建查询订单信息的映射文件


	
		
		
		
		
		
		
		
		
		
	

	
	

(2)创建查询用户信息的映射文件

	
	

3、Mapper接口

//延迟加载
	public List findOrderAndUserLazyLoading();

4、测试代码

@Test
	public void testLazyLoading() {
		// 创建OrdersMapper对象
		SqlSession sqlSession = sqlSessionFactory.openSession();

		OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class);

		List list = mapper.findOrderAndUserLazyLoading();

		//按需加载时,是需要的时候再去数据库中查找
		for (OrdersExt order : list) {
			System.out.println(order.getUser());
		}
		
		sqlSession.close();
	}

5、设置延迟加载

在SqlMapConfig.xml中,配置settings标签


		
		
		
		
		


你可能感兴趣的:(JavaEE,mybatis)