Mybatis 延迟加载和立即加载
延迟加载
- 延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据,延迟加载也称懒加载
- 在一对多或多对多的表关系中,通常都是采用延迟加载
立即加载
- 立即加载就是不管是否需要数据,只要一进行查询,就会把相关联的数据一并查询出来
- 在多对一或一对一的表关系中,通常都是采用立即加载
一对一的延迟加载(订单与用户)
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
注意:
在编写 Mybatis 的主配置文件时,文档结构不可以随便写。需要按照官方文档所要求的顺序。
properties -> settings -> typeAliases -> ... -> environments -> ... -> mappers
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.dao.AccountDao">
<resultMap id="accountMap" type="com.demo.entity.Account">
<id property="id"