Mybatis深入了解----延迟加载
来源:互联网 发布:js forech 编辑:程序博客网 时间:2024/06/06 19:45
什么是延迟加载?
resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。resultType无法实现延迟加载。
延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高 数据库性能,因为查询单表要比关联查询多张表速度要快。
使用association实现延迟加载
需要定义两个Mapper的方法对应的statement
- 只查询订单信息
在查询订单的statement中使用association去延迟加载(执行)下边的statement(关联查询用户信息)
- 延迟加载resultMap
使用association中的select指定延迟加载去执行的statement的id。
测试
测试思路
执行上边mapper方法(findOrdersUserLazyLoading),内部去调用cn.itcast.mybatis.mapper.OrdersMapperCustom中的findOrdersUserLazyLoading只查询orders信息(单表)。
在程序中去遍历上一步骤查询出的List,当我们调用Orders中的getUser方法时,开始进行延迟加载。
延迟加载,去调用UserMapper.xml中findUserbyId这个方法获取用户信息。
- 延迟加载配置
mybatis默认没有开启延迟加载,需要在SqlMapConfig.xml中setting配置。在mybatis核心配置文件中配置:
在SqlMapConfig.xml中配置:
测试代码
总之,使用延迟加载方法,先去查询简单的sql(最好单表,也可以关联查询),再去按需要加载关联查询的其它信息。
0 0
- Mybatis深入了解----延迟加载
- Mybatis深入了解(七)----延迟加载
- Mybatis深入了解(七)----延迟加载
- mybatis源代码分析:深入了解mybatis延迟加载机制
- MyBatis延迟加载
- mybatis延迟加载
- MyBatis延迟加载
- Mybatis延迟加载
- MyBatis 配置延迟加载
- Mybatis 延迟加载
- mybatis延迟加载
- Mybatis的延迟加载
- MyBatis-延迟加载
- mybatis的延迟加载
- Mybatis的延迟加载
- Mybatis-延迟加载
- 【Mybatis架构】 延迟加载
- mybatis延迟加载
- Gson——偷个懒,常用查询
- “the import java.io cannot be resolved”错误的解决方法
- [Misc]利用cmdline,将参数从preloader传递到kernel
- 多线程
- ConcurrentHashMap 的实现原理
- Mybatis深入了解----延迟加载
- Inline-block没有内容时,仍有高度
- <java编程思想>(thing in java) 阅读笔记(第十三章至第十五章)
- android 的getInstance运用(单例模式)
- 【杭电oj】1443 - Joseph(模拟,打表)
- Pig安装配置及基本使用
- ROS 机器人操作系统
- bestcoder两周年前三题hdu5718,5719,5720
- Java数据类型中String、Integer、int相互间的转换