改成单表查询 首先配置的是select.他需要配置的值是accountDao中的方法,查询所有的账户,但是必须有条件.根据用户的id column配置的是id.因为要用user表的id去关联查询 AccountDao增加findAccountByUid方法 映射文件只需要封装到resultType里面即可  运行测试 调用测试方法 已经开始有延迟加载了. 注释掉循环的内容. 值查询了一个user表的sql…
二级缓存:             它指的是Mybatis中SqlSessionFactory对象的缓存.由同一个SqlSessionFactory对象创建的SqlSession共享其缓存.             二级缓存的使用步骤:                 第一步:让Mybatis框架支持二级缓存(在SqlMapConfig.xml中配置)                 第二步:让当前的映射文件支持二级缓存(在IUserDao.xml中配置)                 第三步…
Mybatis中的一级缓存和二级缓存         一级缓存:             它指的是Mybatis中SqlSession对象的缓存.             当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供一块区域中.             该区域的结构是一个Map.当我们再次查询同样的数据,mybatis会先去sqlsession中             查询是否有,有的话直接拿出来用.             当SqlSession对象消失时,myb…
不用骨架创建项目 复制一对多的代码src下的代码到我们刚才创建的项目里面 把依赖信息复制过来 这里原来实现的功能是立即加载的功能.sql语句是一次性查询的两个表关联的查询. 调整代码 删除AccountUser这个类 AccountTtest只保留findAll的方法 associaiton先剪切掉. 修改后 先运行这个单表操作 别名的问题 这是下面这个方法配置引起的.删掉下面红框内的代码即可. 再次来执行.正常执行成功 配置延迟加载 这里我们需要使用一个新的属性,叫做select 其实sele…
delete 51已经被删除掉了. 查询一个 findUserByName模糊查询 带百分号的情况 value这个参数是固定的 返回值为int类型的…
    频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某些场景下可以大大提升查询效率. MyBatis的缓存分为两种: 一级缓存,一级缓存是SqlSession级别的缓存,对于相同的查询,会从缓存中返回结果而不是查询数据库 二级缓存,二级缓存是Mapper级别的缓存,定义在Ma…
一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你.具体来说Cookie机制采用的是在客户端保持状态的方案(保存客户浏览器请求服务器页面…
问题背景 项目开发中有一个树形数据结构,不像经典组织结构树.菜单级别树,我们这个树形结构是用户后期手动建立起来的关系.因此数据库表结构为两张表:数据记录表.记录关系表,通过业务规则限制,形成的树形结构像下面这样: 特殊之处就是树结构节点是有重复的 不复制重复节点 复制重复节点 项目要求前端展示.导出时使用复制重复节点的方式.开搞吧 Mybatis树结构查询 树结构查询,在mysql下当然是使用Mybatis框架提供的递归查询了. xml配置文件 <resultMap type="(...)…
Java面试经常问到Mybatis一级缓存和二级缓存,今天就给大家重点详解Mybatis一级缓存和二级缓存原理与区别@mikechen Mybatis缓存 缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存可以避免频繁与数据库进行交互,从而提高查询响应速度. MyBatis 提供了对缓存的支持,分为一级缓存和二级缓存,如下图所示: 我们先大致了解下MyBatis一级缓存与MyBatis 二级缓存: 一级缓存:SqlSession级别的缓存,缓存的数据只在SqlSession内有效.…
前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍 首先看一段wiki上关于MyBatis缓存的介绍: MyBatis支持声明式数据缓存(declarative data caching).当一条SQL语句被标记为"可缓存"后,首次执行它时从数据库获取的所有数据会被存储在一段高速缓存中,今后执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库.MyBatis提供了默认下基于Jav…