<span style="font-size:18px;"><settings> <!--开启二级缓存--> <setting name="cacheEnabled" value="true"/> </settings> </span>
2,在需要开启二级缓存的mapper.xml中加入caceh标签
<span style="font-size:18px;"><cache/></span>
3,让使用二级缓存的POJO类实现Serializable接口
<span style="font-size:18px;">public class User implements Serializable {}</span>
测试一下
<span style="font-size:18px;">@Test public void testCache2() throws Exception { SqlSession sqlSession1 = sqlSessionFactory.openSession(); SqlSession sqlSession2 = sqlSessionFactory.openSession(); UserMapper userMapper1 = sqlSession1.getMapper(UserMapper.class); User user1 = userMapper1.findUserById(1); System.out.println(user1); sqlSession1.close(); UserMapper userMapper2 = sqlSession2.getMapper(UserMapper.class); User user2 = userMapper2.findUserById(1); System.out.println(user2); sqlSession2.close(); }</span>
输出结果:
<span style="font-size:18px;">DEBUG [main] - Cache Hit Ratio [com.iot.mybatis.mapper.UserMapper]: 0.0 DEBUG [main] - Opening JDBC Connection DEBUG [main] - Created connection 103887628. DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@631330c] DEBUG [main] - ==> Preparing: SELECT * FROM user WHERE id=? DEBUG [main] - ==> Parameters: 1(Integer) DEBUG [main] - <== Total: 1 User [id=1, username=张三, sex=1, birthday=null, address=null] DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@631330c] DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@631330c] DEBUG [main] - Returned connection 103887628 to pool. DEBUG [main] - Cache Hit Ratio [com.iot.mybatis.mapper.UserMapper]: 0.5 User [id=1, username=张三, sex=1, birthday=null, address=null]</span>
原文:https://www.cnblogs.com/BruceV/p/12029828.html