java之mybatis之缓存
2024-10-21 03:47:08
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>
最新文章
- c++中的重载(Overload)、覆盖(重写,Override) 、隐藏与using声明
- JavaScript学习笔记——变量和数据类型
- 面对一个新的MCU,我再也不敢说第一步是点灯了
- js对象的两种写法
- truncate和 delete的区别:
- [ES6] 23. Rest Parameters &; Spread Parameters
- Weinre在iOS 7上不工作的原因
- 「Poetize7」电话线路
- 数据库————Select 查询
- Android的UI两大基石
- 【转】高性能服务器架构(High-Performance Server Architecture)
- Ubuntu Nginx 开机自启动
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
- Gradient Descent 梯度下降法-R实现
- PPT领取 | 70+数据科学、架构演进等最佳实践限时放送
- mac上遇到的坑
- RTL8201EL介绍【转】
- JDBC遇到向ORACLE数据库表执行插入操作时,报错“列在此处不允许”
- 2018.09.01 09:22 Exodus
- Android 屏幕适配:最全面的解决方案
热门文章
- “未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- Net core学习系列(十)——Net Core配置
- 范仁义html+css课程---10、其它标签
- INDY10 BASE64编码
- 【转】干货篇:手机绕过BL锁9008模式强刷
- 大牛总结的MySQL锁优化【转】
- Nginx发布静态图片服务器
- Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
- kubernetes篇 容器用户权限控制
- Zabbix主动模式与被动模式的区别——最简单的解释