mybatis学习五之延迟加载
来源:互联网 发布:mac右键菜单设置 编辑:程序博客网 时间:2024/05/15 13:50
1.延迟加载
1.1 association 和collection都有延迟加载的功能,(collection也可以实现,下面介绍association,语法一样)
延迟加载: 先从单表查询,需要时再从关联表去查询提高数据库性能,只有在调用get方法获取的时候,association的查询才会进行,不然的话就只进行单表的
1.2 使用association
1.2.1编写mapper.xml
需要定义两个mapper的方法对应的statement,其中一个由association调用
1) 只查询订单信息(假设有用户和订单表)
在查询订单的statement中使用association 去延迟加载(执行) 下面的statement(关联查询用户的信息)
2)关联查询用户信息
通过上面查询到的订单信息中的user_id 去查用户信息
<resultMap type="要返回的自定义类" id="resultMap的唯一标识">
<id columns= "" property=""/>//关于resultMap在上一篇中有记载
<association property= "" javaType = "" select="" columns="">
</association>
</resultMap>
// javaType 表示使用的返回的是什么类型 List的话就用 ArrayList ,
//property 表示使用List的泛型的类对象
//select 指定延迟加载要使用的statement的id
//columns 表示订单中关联用户的columns
<select id="query" resultMap="上面的resultMap">
sql语句 查询订单
</select>
<select id="queryUser" resultType="" parameterType="">
SQL语句
</select>
PS: mybatis默认没有开启延迟加载,需要在sqlMapConfig.xml(全局xml)中进行配置setting全局变量
LazyLoadingEnabled 全局性设置懒加载,若设为false则所有的相关联的都会被初始化(意思是使用上面的方法,开始就会被加载查询 ,默认值是false) 允许值 true | false ,设置为true 开启延迟加载的开关
aggressiveLazyLoading 当设置为true的时候,懒加载的对象可能被任何懒属性全部加载,否则每个属性都按需加载(表示有多个懒属性,如果是默认的true,一个懒属性加载,都会被加载,不能达到数据库性能优化的效果),默认值为true,允许的值true | false, 将积极加载改成消极加载
<settings>
<setting name="" value="" />
</settings>
- mybatis学习五之延迟加载
- MyBatis学习五:延迟加载
- MyBatis学习五:延迟加载
- MyBatis学习五:延迟加载
- mybatis学习之高级映射 延迟加载
- MyBatis之延迟加载
- 【MyBatis学习11】MyBatis中的延迟加载
- 【MyBatis学习11】MyBatis中的延迟加载
- 【MyBatis学习11】MyBatis中的延迟加载
- Mybatis学习(10)-MyBatis中的延迟加载
- 【MyBatis学习11】MyBatis中的延迟加载
- mybatis学习笔记(13)-延迟加载
- Mybatis学习系列——延迟加载
- Mybatis学习笔记(十四)【延迟加载】
- Mybatis学习总结(六).Mybatis高级查询及延迟加载
- MyBatis延迟加载
- mybatis延迟加载
- MyBatis延迟加载
- 接口测试之发包工具介绍
- Linux 开机时网络自动连接
- Centos7+django1.11+apache2.4+mod_wsgi4.5+python3.6项目部署
- Android逆向之旅---动态方式破解apk前奏篇(Eclipse动态调试smail源码)
- 防火墙-端口
- mybatis学习五之延迟加载
- 本地数据存储之 IndexedDB 基本封装
- 公钥和私钥
- C语言的指定初始化
- ViewPager与Item滑动冲突的bug
- Android App跳转至百度,高德App的驾车(路线)规划
- Spark 下操作 HBase(1.0.0 新 API)
- Java_分解质因数
- python利用矩阵计算实现BP神经网络