MyBatis延迟加载
延迟加载
延迟加载是指关联对象的按需加载。把对多个表的一次连表查询,分解为对多个单表的多次查询。默认只查询主表的数据,在使用查询结果对象时,才去对关联表进行查询。
优点:提高数据库性能,单表查询效率高于连表查询
缺点:增加查询次数?
全局设置
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
一对一
<resultMap id="accountUserMap" type="Account">
<id property="id" column="id"/>
<id property="uid" column="uid"/>
<result property="money" column="money"/>
<association property="user" javaType="User" column="uid" select="com.ttpfx.dao.UserDao.getUserById" />
</resultMap>
一对多
<resultMap id="userAccountMap" type="User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="birthday" column="birthday"/>
<result property="sex" column="sex"/>
<result property="address" column="address"/>
<collection property="accounts" ofType="Account" column="id"
select="com.ttpfx.dao.AccountDao.getAccountListByUid"/>
</resultMap>