spring-mybatis.xml配置文件 <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 */*/* =》系统/模块/xxxMapper--> <property name="mapperLocations" value="classpath:com/chaofan/www/dao/mapping/*.xml"/> <property name="configurationProperties"> <props> <!-- 这个配置使全局的映射器启用或禁用缓存 --> <prop key="cacheEnabled">true</prop> <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> <prop key="multipleResultSetsEnabled">true</prop> <!-- 配置默认的执行器。SIMPLE 执行器没有什么特别之处。REUSE 执行器重用预处理语句。BATCH 执行器重用语句和批量更新 --> <prop key="defaultExecutorType">REUSE</prop> <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 --> <prop key="lazyLoadingEnabled">false</prop> <prop key="aggressiveLazyLoading">true</prop> <!-- 设置超时时间,它决定驱动等待一个数据库响应的时间。 --> <prop key="defaultStatementTimeout">25000</prop> </props> </property> </bean>
在需要加缓存的mapper.xml文件中加入
<cache type="com.chaofan.www.cache.MybatisRedisCache"/>
MybatisRedisCache类代码详见:https://my.oschina.net/junko2013/blog/882245
运行项目,执行查询的地方打印以下类似代码说明配置OK了:
2017-04-18 18:46:53
[] [] [DEBUG]-[Thread: http-nio-8080-exec-9]-[com.chaofan.www.cache.MybatisRedisCache.getObject()]: >>>>>>>>>>>>>>>>>>>>>>>>getObject:722162528:2072856854:com.chaofan.www.dao.backend.AdminDao.selectAll:0:2147483647:select
id, account, creater_id, is_locked, gmt_create, gmt_modified