1.mybatis自带缓存功能。分为一级缓存,二级缓存。

2.一级缓存为 session 缓存,在一个 session中 ,一个查询的 select 语句只会执行一次,根据  <select></select>语句的id来判断。

  @Test
public void testFind() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);
System.out.println(user);
System.out.println("===========================");
User u=(User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);
System.out.println(u);
session.close();
}

3.二级缓存,是 sessionFactory 级别的缓存,在 mybatis 中实现二级缓存的步骤

a) 首先实体类要序列化,二级缓存存储的是数据文件

b) 在映射中添加 cache 标签

<cache
eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>

代码

@Test
public void testFind() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);
System.out.println(user);
session.close();
System.out.println("===========================");
session = MybatisUtil.getSqlSession();
User u=(User)session.selectOne("cn.sxt.vo.UserMapper.findUser",1);
System.out.println(u);
session.close();
}

附:

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.sxt.vo.UserMapper">
<select id="findUser" resultType="User">
select * from t_user where id=#{id}
</select>
<cache
eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>
</mapper>

最新文章

  1. c++中的重载(Overload)、覆盖(重写,Override) 、隐藏与using声明
  2. JavaScript学习笔记——变量和数据类型
  3. 面对一个新的MCU,我再也不敢说第一步是点灯了
  4. js对象的两种写法
  5. truncate和 delete的区别:
  6. [ES6] 23. Rest Parameters &amp; Spread Parameters
  7. Weinre在iOS 7上不工作的原因
  8. 「Poetize7」电话线路
  9. 数据库————Select 查询
  10. Android的UI两大基石
  11. 【转】高性能服务器架构(High-Performance Server Architecture)
  12. Ubuntu Nginx 开机自启动
  13. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
  14. Gradient Descent 梯度下降法-R实现
  15. PPT领取 | 70+数据科学、架构演进等最佳实践限时放送
  16. mac上遇到的坑
  17. RTL8201EL介绍【转】
  18. JDBC遇到向ORACLE数据库表执行插入操作时,报错“列在此处不允许”
  19. 2018.09.01 09:22 Exodus
  20. Android 屏幕适配:最全面的解决方案

热门文章

  1. “未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  2. Net core学习系列(十)——Net Core配置
  3. 范仁义html+css课程---10、其它标签
  4. INDY10 BASE64编码
  5. 【转】干货篇:手机绕过BL锁9008模式强刷
  6. 大牛总结的MySQL锁优化【转】
  7. Nginx发布静态图片服务器
  8. Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
  9. kubernetes篇 容器用户权限控制
  10. Zabbix主动模式与被动模式的区别——最简单的解释