mybatis 延迟加载

MyBatis的延迟加载(Lazy Loading)是一种优化技术,用于在需要时才加载关联对象或集合,从而提高性能和效率。以下是对MyBatis延迟加载的详细介绍:

延迟加载的基本概念
延迟加载是指在第一次访问对象的属性时才加载该对象的数据,而不是在对象创建时就立即加载所有的数据。这样可以避免不必要的数据库访问,减少系统的开销和提高性能。
在这里插入图片描述
在这里插入图片描述

<mapper namespace="com.example.UserMapper">
    <resultMap id="userMap" type="com.example.User">
        <id property="id" column="id"/>
        <result property="username" column="username"/>
        <association property="address" column="address_id" javaType="com.example.Address" fetchType="lazy">
            <id property="id" column="id"/>
            <result property="city" column="city"/>
        </association>
    </resultMap>

    <select id="selectUser" resultMap="userMap">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>


在上面的示例中,User类中的address属性会被设置为延迟加载。

public class MyBatisExample {
    public static void main(String[] args) {
        SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = userMapper.selectUser(1);
            System.out.println(user.getUsername()); // 此时不会加载address
            System.out.println(user.getAddress().getCity()); // 访问address时才会加载address
        }
    }
}

在这里插入图片描述
aggressiveLazyLoading属性:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关推荐

  1. MyBatis延迟(懒

    2024-07-10 10:32:03       66 阅读
  2. MyBatis 延迟,一级缓存,二级缓存设置

    2024-07-10 10:32:03       42 阅读
  3. MyBatis中的延迟与分步查询总结

    2024-07-10 10:32:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:32:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:32:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:32:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 10:32:03       98 阅读

热门阅读

  1. CSS学习

    2024-07-10 10:32:03       26 阅读
  2. Unity 常用取整方法

    2024-07-10 10:32:03       29 阅读
  3. 华为机考真题 -- 攀登者1

    2024-07-10 10:32:03       27 阅读
  4. Linux内核 -- 内存管理之scatterlist结构使用

    2024-07-10 10:32:03       51 阅读
  5. 【国产开源可视化引擎Meta2d.js】数据

    2024-07-10 10:32:03       27 阅读
  6. Elasticsearch 面试题指南

    2024-07-10 10:32:03       26 阅读
  7. Linux笔记之iftop查看特定IP地址吞吐量

    2024-07-10 10:32:03       23 阅读
  8. 量化交易在不同经济周期中的表现

    2024-07-10 10:32:03       28 阅读
  9. Kotlin构造函数

    2024-07-10 10:32:03       30 阅读