简介
Mybatis 的一级缓存默认是开启不能关闭的,它的作用范围为 SqlSession
,即在同一个 SqlSession
中共享。在 SpringBoot 中需要添加 @Transactional
注解才能生效。下面的代码展示一级缓存如何使用:
-
先不添加
@Transactional
注解,代码如下:@Test public void test() { User userQuery = new User(); User user = userService.selectOne(userQuery); System.out.println(user); User userFromCache = userService.selectOne(userQuery); System.out.println(userFromCache); }
查看控制台是否会执行两次数据库查询(通过查看控制台打印的 SQL 得知查询数据库的次数)
可以看到在没加 @Transactional
注解的时候确实执行了两次数据库的查询,证明没有使用到缓存。
-
加上
@Transactional
再次执行查看结果@Test @Transactional(rollbackFor = Exception.class) public void test() { User userQuery = new User(); User user = userService.selectOne