<!-- 延迟加载的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入门截图四(订单商品数据模型-懒加载-缓存)相关推荐

  1. 【iOS_GitHub】新闻频道栏(网易新闻,新浪新闻,搜狐新闻,今日头条,聚划算,腾讯视频,优酷等类的频道栏),支持小红点标识 懒加载 缓存 排序 增删等

    NewsChannel(新闻频道栏) Ready 新闻频道栏(网易新闻,新浪新闻,搜狐新闻,今日头条,聚划算,腾讯视频,优酷等类似的频道栏) 支持小红点标识 && 懒加载 && ...

  2. web前端高级React - React从入门到进阶之组件的懒加载及上下文Context

    第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...

  3. python爬虫动态加载_python爬虫入门实战(四)!爬取动态加载的页面!

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  4. layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  5. 怎么加载csv_python爬虫入门实战(四)!爬取动态加载的页面

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  6. mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载

    涉及到数据库的级联查询,那肯定就要提到一对一,一对多,多对多这样的表关系,以及java程序与之对应的类和类之间的表现形式,我这里主要通过一对多的表关系给大家介绍以下MyBatis里面对于级联关系的处理 ...

  7. mybatis 的懒加载原理

    断断续续的阅读 mybatis 的源码有好几个月了,想把自己了解到的一些东西与大家分享.今天给大家分享一下 mybatis 的懒加载原理. mybatis 的懒加载过程挺复杂的,涉及到的东西有很多,包 ...

  8. 40.MyBaits懒加载、一二级缓存、模糊查询、分页查询、动态SQL

    MyBaits_Day04 第一节.作业 <!-- 对getAllCateAndGoods做实现--><select id="getAllCateAndGoods" ...

  9. 关于img标签加载图片失败优化以及懒加载。

    这篇博客算是完全的笔记了,记录一下平常中不怎么注意的img标签的一些事. 昨天看到这篇Handling broken images with the service worker文章,这文章中有另外提 ...

  10. 【MyBatis框架】订单商品数据模型-分析思路

    我们接下来要对即将用来实验的订单商品数据模型进行分析. 首先在MySql中创建mybatis数据库,在其中创建以下表: [sql] view plaincopy CREATE TABLE `items ...

最新文章

  1. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  2. x5675相当于e5_至强X5675比I7 2600强多少 至强X5675相当于几个AMD X2 220
  3. 1.0Nvm环境配置
  4. 判断linux进程是否存在
  5. Django项目搭建(基础)
  6. 微信公众平台开发之在网页上添加分享到朋友圈,关注微信号等按钮
  7. MyCat分布式数据库集群架构工作笔记0012---高可用_Mycat双主双从复制原理
  8. 生成全1矩阵_2020美赛A题(1)-图像处理
  9. SpringCloud之良心入门干货(Eureka入门)
  10. Mac与Windows或Linux的键鼠共享神器Synergy
  11. 21朵水仙花算法java_水仙花数算法 - hi_jyf - OSCHINA - 中文开源技术交流社区
  12. Struts框架可以支持以下哪种程序开发语言?(选择1项)
  13. WiFi PHY技术之自动增益控制(AGC)
  14. 机器学习中强化学习的一些知识
  15. struts2 ognl.OgnlException: target is null for setProperty(null, pageNO, [Ljava.lang.String;@c3bb57)
  16. 如何添加二级域名(图文超级详细)
  17. Oracle学习——第四讲(增删改查)
  18. 虚拟主机服务器能干嘛用,虚拟主机能拿来干什么
  19. 1.7三分钟读懂Saas、Paas、IaaS的区别
  20. “三次握手,四次挥手”这么讲,保证你忘不了

热门文章

  1. Illustrator中文版教程,如何在 Illustrator 中快速连接和修剪路径?
  2. Magnet :让Mac上的分屏更好用
  3. 苹果 Mac 上不显示外置硬盘?9 个必须尝试的修复方法
  4. iOS开发之WKWebView的使用以及遇到的问题
  5. Scherlokk for Mac(文件搜索软件)
  6. Apeaksoft iOS Toolkit for Mac数据恢复软件
  7. Sublime Merge for Mac(git客户端软件)
  8. 如何将文件从iPhone或iPad空投到Mac计算机?
  9. Vue组件学习(转载)
  10. Redis学习笔记3-Redis5个可运行程序命令的使用