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>
posted @ 2021-03-10 09:53  ttpfx  阅读(45)  评论(0编辑  收藏  举报