mybatis 基于注解的二级缓存
在 SqlMapConfig.xml 中开启二级缓存支持
<span style="color:#000000"><code class="language-xml"><span style="color:#5c6370"><!--配置开启二级缓存--></span>
<span style="color:#e06c75"><span style="color:#e06c75"><span style="color:#999999"><</span>settings</span><span style="color:#999999">></span></span>
<span style="color:#e06c75"><span style="color:#e06c75"><span style="color:#999999"><</span>setting</span> <span style="color:#d19a66">name</span><span style="color:#669900"><span style="color:#999999">=</span><span style="color:#999999">"</span>cacheEnabled<span style="color:#999999">"</span></span> <span style="color:#d19a66">value</span><span style="color:#669900"><span style="color:#999999">=</span><span style="color:#999999">"</span>true<span style="color:#999999">"</span></span><span style="color:#999999">/></span></span>
<span style="color:#e06c75"><span style="color:#e06c75"><span style="color:#999999"></</span>settings</span><span style="color:#999999">></span></span>
</code></span>
在持久层接口中使用注解配置二级缓存
<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>*<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>mapping<span style="color:#999999">.</span>FetchType<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>
<span style="color:#5c6370">/**
* Keafmd
*
* @ClassName: IUserDao
* @Description:
* @author: 牛哄哄的柯南
* @date: 2021-02-16 20:30
*/</span>
<span style="color:#5c6370">/**
* 在mybatis中针对CRUD一共有四个注解
* @Select @Insert @Update @Delete
*/</span>
<span style="color:#999999">@CacheNamespace</span><span style="color:#999999">(</span>blocking <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">)</span> <span style="color:#5c6370">//mybatis 基于注解方式实现配置二级缓存 *这里*</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">interface</span> IUserDao <span style="color:#999999">{</span>
<span style="color:#5c6370">/**
* 查询所有用户
* @return
*/</span>
<span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user"</span><span style="color:#999999">)</span>
<span style="color:#999999">@Results</span><span style="color:#999999">(</span>id<span style="color:#669900">=</span><span style="color:#669900">"userMap"</span><span style="color:#999999">,</span>value<span style="color:#669900">=</span><span style="color:#999999">{</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>id <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"username"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userName"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"sex"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userSex"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"birthday"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userBirthday"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
<span style="color:#999999">@Result</span><span style="color:#999999">(</span>property <span style="color:#669900">=</span> <span style="color:#669900">"accounts"</span> <span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>
many <span style="color:#669900">=</span> <span style="color:#999999">@Many</span><span style="color:#999999">(</span>select <span style="color:#669900">=</span> <span style="color:#669900">"com.keafmd.dao.IAccountDao.findAccountByUid"</span><span style="color:#999999">,</span>
fetchType <span style="color:#669900">=</span> FetchType<span style="color:#999999">.</span>LAZY<span style="color:#999999">)</span><span style="color:#999999">)</span>
<span style="color:#999999">}</span><span style="color:#999999">)</span>
List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#5c6370">/**
* 根据id查询用户
* @param userId
* @return
*/</span>
<span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where id=#{id}"</span><span style="color:#999999">)</span>
<span style="color:#5c6370">//@ResultMap(value={"userMap"})</span>
<span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
User <span style="color:#61aeee">findById</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#5c6370">/**
* 根据用户名称模糊查询
* @param username
* @return
*/</span>
<span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where username like #{username}"</span><span style="color:#999999">)</span> <span style="color:#5c6370">//占位符</span>
<span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findByName</span><span style="color:#999999">(</span>String username<span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
</code></span>
编写测试二级缓存的测试类
<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>test<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Resources<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSession<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactory<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactoryBuilder<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>After<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Before<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Test<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>InputStream<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>
<span style="color:#5c6370">/**
* Keafmd
*
* @ClassName: SecondLevelCatchTest
* @Description: 二级缓存测试
* @author: 牛哄哄的柯南
* @date: 2021-02-16 23:37
*/</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> SecondLevelCatchTest <span style="color:#999999">{</span>
<span style="color:#c678dd">private</span> InputStream in<span style="color:#999999">;</span>
<span style="color:#c678dd">private</span> SqlSessionFactory factory<span style="color:#999999">;</span>
<span style="color:#999999">@Before</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">init</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
in <span style="color:#669900">=</span> Resources<span style="color:#999999">.</span><span style="color:#61aeee">getResourceAsStream</span><span style="color:#999999">(</span><span style="color:#669900">"SqlMapConfig.xml"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
factory <span style="color:#669900">=</span> <span style="color:#c678dd">new</span> SqlSessionFactoryBuilder<span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">.</span><span style="color:#61aeee">build</span><span style="color:#999999">(</span>in<span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
<span style="color:#999999">@After</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">destory</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
in<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
<span style="color:#999999">@Test</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">testFindOne</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
SqlSession session <span style="color:#669900">=</span> factory<span style="color:#999999">.</span><span style="color:#61aeee">openSession</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
IUserDao userDao <span style="color:#669900">=</span> session<span style="color:#999999">.</span><span style="color:#61aeee">getMapper</span><span style="color:#999999">(</span>IUserDao<span style="color:#999999">.</span><span style="color:#c678dd">class</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
User user <span style="color:#669900">=</span> userDao<span style="color:#999999">.</span><span style="color:#61aeee">findById</span><span style="color:#999999">(</span><span style="color:#98c379">55</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#999999">)</span><span style="color:#999999">;</span>
session<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span><span style="color:#5c6370">//释放一级缓存</span>
SqlSession session1 <span style="color:#669900">=</span> factory<span style="color:#999999">.</span><span style="color:#61aeee">openSession</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span><span style="color:#5c6370">//再次打开session</span>
IUserDao userDao1 <span style="color:#669900">=</span> session1<span style="color:#999999">.</span><span style="color:#61aeee">getMapper</span><span style="color:#999999">(</span>IUserDao<span style="color:#999999">.</span><span style="color:#c678dd">class</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
User user2 <span style="color:#669900">=</span> userDao1<span style="color:#999999">.</span><span style="color:#61aeee">findById</span><span style="color:#999999">(</span><span style="color:#98c379">55</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user2<span style="color:#999999">)</span><span style="color:#999999">;</span>
System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#669900">==</span>user2<span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
<span style="color:#999999">}</span>
</code></span>
不开启二级缓存配置的运行结果:
<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">119</span> <span style="color:#98c379">320</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">509</span> <span style="color:#98c379">710</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource <span style="color:#669900">-</span> Created connection <span style="color:#98c379">85445963.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">510</span> <span style="color:#98c379">711</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">514</span> <span style="color:#98c379">715</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">551</span> <span style="color:#98c379">752</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">633</span> <span style="color:#98c379">834</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">634</span> <span style="color:#98c379">835</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">634</span> <span style="color:#98c379">835</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">635</span> <span style="color:#98c379">836</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">635</span> <span style="color:#98c379">836</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">85445963</span> to pool<span style="color:#999999">.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource <span style="color:#669900">-</span> Checked out connection <span style="color:#98c379">85445963</span> from pool<span style="color:#999999">.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">636</span> <span style="color:#98c379">837</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">637</span> <span style="color:#98c379">838</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">639</span> <span style="color:#98c379">840</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">641</span> <span style="color:#98c379">842</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">641</span> <span style="color:#98c379">842</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">32</span><span style="color:#999999">,</span><span style="color:#98c379">642</span> <span style="color:#98c379">843</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#56b6c2">false</span>
Process finished with exit code <span style="color:#98c379">0</span>
</code></span>
开启二级缓存配置的运行结果:
<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">197</span> <span style="color:#98c379">373</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">605</span> <span style="color:#98c379">781</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource <span style="color:#669900">-</span> Created connection <span style="color:#98c379">500179317.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">606</span> <span style="color:#98c379">782</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@1dd02175</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">617</span> <span style="color:#98c379">793</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">668</span> <span style="color:#98c379">844</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">777</span> <span style="color:#98c379">953</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">781</span> <span style="color:#98c379">957</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">782</span> <span style="color:#98c379">958</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">782</span> <span style="color:#98c379">958</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span> Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">790</span> <span style="color:#98c379">966</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@1dd02175</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">791</span> <span style="color:#98c379">967</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@1dd02175</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">791</span> <span style="color:#98c379">967</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">500179317</span> to pool<span style="color:#999999">.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">800</span> <span style="color:#98c379">976</span> <span style="color:#999999">[</span> main<span style="color:#999999">]</span> DEBUG com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao <span style="color:#669900">-</span> Cache Hit Ratio <span style="color:#999999">[</span>com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">]</span><span style="color:#669900">:</span> <span style="color:#98c379">0.5</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#56b6c2">false</span>
Process finished with exit code <span style="color:#98c379">0</span>
</code></span>
效果很明显,开启使用二级缓存时第二次并没有发起查询,证明使用的就是二级缓存。