Mybatis 懒加载
什么是懒加载#
按需加载,先从单表查询,需要时再从关联表去关联查询,能大大提高数据库性能,并不是所有场景下使用懒加载都能提高性能
Mybatis懒加载:resultMap里面的association、collection都有延迟加载功能
全局配置文件
<!--全局配置--> <settings> <!--延迟加载总开关--> <setting name="lazyLoadingEnabled" value="true"/> <!--将aggressiveLazyLoading设置为false表示按需加载,默认为true--> <setting name="aggressiveLazyLoading" value="false"/> </settings>
XXXXMapper.xml
<resultMap id="VideoOrderResultMapLazy" type="net.cybclass.online.domain.VideoOrder"> <id column="id" property="id"></id> <result column="user_id" property="user_id"></result> <result column="out_trade_no" property="out_trade_no"></result> <result column="create_time" property="create_time"></result> <result column="state" property="state"></result> <result column="total_fee" property="total_fee"></result> <result column="video_id" property="video_id"></result> <result column="video_title" property="video_title"></result> <result column="video_img" property="video_img"></result> <!-- select:指定延迟加载需要执行的statement id column:和select查询关联的字段 --> <association property="user" javaType="net.cybclass.online.domain.User" column="user_id" select="findUserByUserId"/> </resultMap> <!--一对一关联查询订单,订单内容包含用户属性--> <select id="queryVideoOrderListLazy" resultMap="VideoOrderResultMapLazy"> select v.id, v.out_trade_no, v.create_time, v.state, v.total_fee, v.video_id, v.video_title, v.user_id, v.video_img, u.name, u.pwd, u.phone, u.head_img, u.create_time create_time_u from video_order v left join user u on v.user_id=u.id </select> <select id="findUserByUserId" resultType="net.cybclass.online.domain.User"> select * from user where id=#{id} </select>
注:部分用户走了一级缓存SqlSession
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-07-13 .Net高级编程-自定义错误页 web.config中<customErrors>节点配置
2019-07-13 .Net网站防盗链
2019-07-13 .Net捕获网站异常信息记录操作日志