mybatis缓存 说明: 缓存指的是把一些常用的数据,保存到一个可以高速读取的缓冲区中。方便程序在频繁读取的时候,可以快速的取出数据。这就叫做缓存。
一级缓存指的是,这些缓存的数据,在同一个SqlSession中多次SQL操作都可以获取。
二级缓存指的是,这些缓存的数据。在同一个Mapper中有一个cache缓存对象。多个SqlSession对象可以共享这些数据。
15.1、mybatis的一级缓存
MyBatis的一级缓存默认开启。同一个SqlSession中查询,可以从一级缓存中取数据。
15.1.1、一级缓存的演示 创建实体Bean对象
public class User { private int id; private String lastName; private int sex;
创建UserMapper接口
public interface UserMapper { public User queryUserById(int id); }
创建UserMappper配置文件
代码语言:javascript复制<!--
queryUserById 根据id查询用户
-->
<select id="queryUserById" parameterType="int" resultType="com.bean.User">
select id,last_name lastName,sex from t_user where id = #{id}
</select>
123456
测试一级缓存的测试代码:
代码语言:javascript复制@Test
public void testQueryUserById() {
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.queryUserById(1);
System.out.println(user);
User user1 = userMapper.queryUserById(1);
System.out.println(user1);
} finally {
session.close();
}
}
1234567891011121314
测试的结果:
在上面的测试代码中,我们不难看出。我们查询了两次。可是只发出一条sql语句。
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120382612