mybatis 延迟加载(懒加载)

延迟加载

在数据与对象进行 mapping 操作时,只有在真正使用到该对象时,才进行 mapping 操作,以减少数据库查询开销,从而提升系统性能。

但是Lazy Load也有缺点,在按需加载时会多次连接数据库, 同时会增加数据库的压力。所以在实际使用时,会衡量是否使 用 延迟加载。

 

mybatis默认没有开启延迟加载,需要在mybatis-config.xml中setting配置启动延时加载! 


lazyLoadingEnabled:true使用延迟加载,false禁用延迟加载, 默认为false。

aggressiveLazyLoading:

true启用时,当延迟加载开启时访问对 象中一个懒对象属性时,将完全加载这个对象的所有懒对象属性 。

false,当延迟加载时,按需加载对象属性(即访问对象中一个 懒对象属性,不会加载对象中其他的懒对象属性)。默认为true。

延迟加载需要多加入的架包:

mybatis 延迟加载(懒加载)_第1张图片

设置一个实体类: 

mybatis 延迟加载(懒加载)_第2张图片

 OrderMapper.xml

        
		
		
		
		
		
			
		
	
	
	

当查询内容只有订单表中的内容的时候,不需要查询关联的用户表

当查询的内容包含用户表的时候,需要调用查询用户表

mybatis 延迟加载(懒加载)_第3张图片

查询结果: 

mybatis 延迟加载(懒加载)_第4张图片

 

你可能感兴趣的:(mybatis)