mybatis入门截图四(订单商品数据模型-懒加载-缓存)
<!-- 延迟加载的resultMap --><resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserLazyLoadingResultMap"><!--对订单信息进行映射配置 --><id column="id" property="id"/><result column="user_id" property="userId"/><result column="number" property="number"/><result column="createtime" property="createtime"/><result column="note" property="note"/><!-- 实现对用户信息进行延迟加载select:指定延迟加载需要执行的statement的id(是根据user_id查询用户信息的statement)要使用userMapper.xml中findUserById完成根据用户id(user_id)用户信息的查询,如果findUserById不在本mapper中需要前边加namespacecolumn:订单信息中关联用户信息查询的列,是user_id关联查询的sql理解为:SELECT orders.*,(SELECT username FROM USER WHERE orders.user_id = user.id)username,(SELECT sex FROM USER WHERE orders.user_id = user.id)sexFROM orders--><association property="user" javaType="cn.itcast.mybatis.po.User"select="cn.itcast.mybatis.mapper.UserMapper.findUserById" column="user_id"><!-- 实现对用户信息进行延迟加载 --></association></resultMap>
断点 调试:
-------------------------
举一反三:一对多延迟加载 查询订单表 延迟加载订单明细表信息 使用collection
断点测试:
下面开始调用订单中的订单列表集合属性:开始调用数据库 加载该订单列表 通过订单表中的id去查询
可以看到实现了懒加载的功能:
但是我们需要注意 :无论何时 使用resultType进行映射的时候 表中查询出的字段 都需要和实体类中的属性名称保持一致 否则无法完成映射 也就是数据不能封装进对应的实体对象中:
上图中 对应的字段不一致
所以就造成如下结果:继续向下执行:
解决办法:1.保证类中的字段和查询出来的列名保持一致(查询的时候 设置别名=实体类中对应的字段名称),2使用resultMap进行映射配置(查询出的字段名称 映射给实体类中的对应属性)
1.起了个别名 和实体类中将要映射的属性一致
执行:
2.配置resultMap 把查询的字段和和实体类中的字段进行映射配置 这里就不再演示了
-------------------------------------------
缓存
一级缓存测试:
二级缓存:
测试:
同样的,如果进行了事务的提交操作,那么该二级缓存就会被清空,再次查询的时候 就需要从数据库中重新发起请求。
其他属性:
转载于:https://www.cnblogs.com/Joke-Jay/p/7501432.html
mybatis入门截图四(订单商品数据模型-懒加载-缓存)相关推荐
- 【iOS_GitHub】新闻频道栏(网易新闻,新浪新闻,搜狐新闻,今日头条,聚划算,腾讯视频,优酷等类的频道栏),支持小红点标识 懒加载 缓存 排序 增删等
NewsChannel(新闻频道栏) Ready 新闻频道栏(网易新闻,新浪新闻,搜狐新闻,今日头条,聚划算,腾讯视频,优酷等类似的频道栏) 支持小红点标识 && 懒加载 && ...
- web前端高级React - React从入门到进阶之组件的懒加载及上下文Context
第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...
- python爬虫动态加载_python爬虫入门实战(四)!爬取动态加载的页面!
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- 怎么加载csv_python爬虫入门实战(四)!爬取动态加载的页面
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载
涉及到数据库的级联查询,那肯定就要提到一对一,一对多,多对多这样的表关系,以及java程序与之对应的类和类之间的表现形式,我这里主要通过一对多的表关系给大家介绍以下MyBatis里面对于级联关系的处理 ...
- mybatis 的懒加载原理
断断续续的阅读 mybatis 的源码有好几个月了,想把自己了解到的一些东西与大家分享.今天给大家分享一下 mybatis 的懒加载原理. mybatis 的懒加载过程挺复杂的,涉及到的东西有很多,包 ...
- 40.MyBaits懒加载、一二级缓存、模糊查询、分页查询、动态SQL
MyBaits_Day04 第一节.作业 <!-- 对getAllCateAndGoods做实现--><select id="getAllCateAndGoods" ...
- 关于img标签加载图片失败优化以及懒加载。
这篇博客算是完全的笔记了,记录一下平常中不怎么注意的img标签的一些事. 昨天看到这篇Handling broken images with the service worker文章,这文章中有另外提 ...
- 【MyBatis框架】订单商品数据模型-分析思路
我们接下来要对即将用来实验的订单商品数据模型进行分析. 首先在MySql中创建mybatis数据库,在其中创建以下表: [sql] view plaincopy CREATE TABLE `items ...
最新文章
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- x5675相当于e5_至强X5675比I7 2600强多少 至强X5675相当于几个AMD X2 220
- 1.0Nvm环境配置
- 判断linux进程是否存在
- Django项目搭建(基础)
- 微信公众平台开发之在网页上添加分享到朋友圈,关注微信号等按钮
- MyCat分布式数据库集群架构工作笔记0012---高可用_Mycat双主双从复制原理
- 生成全1矩阵_2020美赛A题(1)-图像处理
- SpringCloud之良心入门干货(Eureka入门)
- Mac与Windows或Linux的键鼠共享神器Synergy
- 21朵水仙花算法java_水仙花数算法 - hi_jyf - OSCHINA - 中文开源技术交流社区
- Struts框架可以支持以下哪种程序开发语言?(选择1项)
- WiFi PHY技术之自动增益控制(AGC)
- 机器学习中强化学习的一些知识
- struts2 ognl.OgnlException: target is null for setProperty(null, pageNO, [Ljava.lang.String;@c3bb57)
- 如何添加二级域名(图文超级详细)
- Oracle学习——第四讲(增删改查)
- 虚拟主机服务器能干嘛用,虚拟主机能拿来干什么
- 1.7三分钟读懂Saas、Paas、IaaS的区别
- “三次握手,四次挥手”这么讲,保证你忘不了
热门文章
- Illustrator中文版教程,如何在 Illustrator 中快速连接和修剪路径?
- Magnet :让Mac上的分屏更好用
- 苹果 Mac 上不显示外置硬盘?9 个必须尝试的修复方法
- iOS开发之WKWebView的使用以及遇到的问题
- Scherlokk for Mac(文件搜索软件)
- Apeaksoft iOS Toolkit for Mac数据恢复软件
- Sublime Merge for Mac(git客户端软件)
- 如何将文件从iPhone或iPad空投到Mac计算机?
- Vue组件学习(转载)
- Redis学习笔记3-Redis5个可运行程序命令的使用