mybatis 延迟加载

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

延迟加载的基本概念

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

xml 复制代码
<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属性会被设置为延迟加载。

java 复制代码
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属性:



相关推荐
Leonardo_Fibonacci1 小时前
skbbs-day5
java·开发语言·mybatis
cike_y1 小时前
Mybatis之分页的实现&日志工厂&Log4j详解
数据库·log4j·mybatis
星光一影15 小时前
教育培训机构消课管理系统智慧校园艺术舞蹈美术艺术培训班扣课时教务管理系统
java·spring boot·mysql·vue·mybatis·uniapp
cike_y21 小时前
Mybatis之作用域(Scope)和生命周期-解决属性名和字段名不一致的问题&ResultMap结果集映射
java·开发语言·数据库·tomcat·mybatis
柒.梧.1 天前
MyBatis一对一关联查询深度解析:大实体类、SQL99联表、分布式查询实践
分布式·mybatis
Coder_Boy_1 天前
SpringAI与LangChain4j的智能应用-(理论篇)
人工智能·spring·mybatis·springai·langchain4j
zhoupenghui1681 天前
项目访问接口时报“MISCONF Redis is configured to save RDB snapshots, ...“错误的解决方案
数据库·redis·mybatis
cike_y1 天前
Mybatis之解析配置优化
java·开发语言·tomcat·mybatis·安全开发
勇往直前plus1 天前
MyBatis/MyBatis-Plus类型转换器深度解析:从基础原理到自定义实践
数据库·oracle·mybatis
古城小栈1 天前
Spring Boot 数据持久化:MyBatis-Plus 分库分表实战指南
spring boot·后端·mybatis