Mybatis--14Mybatis中的延时加载

Mybatis中的延时加载

延时加载的使用的配置:
使用懒加载,在全局配置XML文件的setting配置
Mybatis--14Mybatis中的延时加载_第1张图片

    <settings>
        <!--懒加载配置-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>

resultMap实现高级映射(使用association和Collection实现一对一映射和一对多映射)
association和Collection具备延时加载的功能
先从单表查询,需要时再从关联表去查询数据,这样能大大提高数据库的性能,单表查询要比多表查询快

在resultMap中使用association为例说明:
使用association中的select标签加载statement的ID

    <resultMap id="OrderUserResultMap" extends="OrdersResultMap" type="com.tulun.maventest.pojo.Orders">
        <!--association的resultMap属性指向已存在Mapper的全路径名-->
        <association property="user" column="id={user_id}" select="com.tulun.maventest.dao.UserMapper.getUserById"/>
    </resultMap>


    <select id="getOrdersByNumber" parameterType="java.lang.String" resultMap="OrderUserResultMap">
        select * from orders where number=#{number}
    </select>

Mybatis--14Mybatis中的延时加载_第2张图片
Mybatis--14Mybatis中的延时加载_第3张图片

你可能感兴趣的:(Mybatis--14Mybatis中的延时加载)