前面我们说了mybatis的缓存设计体系,这里我们来正式看一下这玩意到底是咋个用法。
首先我们是知道的,Mybatis中存在两级缓存。分别是一级缓存(会话级),和二级缓存(全局级)。
下面我们就来看看这两级缓存。
一、准备工作
1、准备数据库
在此之前我们先来准备一个数据库,并且设计一个表user用户表,加几条数据进去。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(32) NOT NULL COMMENT '主键id',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名字',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张飞');
INSERT INTO `user` VALUES (2, '关羽');
INSERT INTO `user` VALUES (3, '孙权');
SET FOREIGN_KEY_CHECKS = 1;
2、然后我们创建一个mybatis中的DAO接口。
public interface IUserDao {
// 查询所有用户
List<User> findAll();
}
3、创建UserMapper.xml文件
<mapper namespace="com.yx.dao.IUserDao">
<select id="findAll" resultType="com.yx.domain.User" statementType="CALLABLE">
SELECT * FROM `user`
</select
</mapper>
4、创建Mybatis核心配置文件
<configuration>
<!--加载外部properties文件,位置必须在第一个-->
<properties resource="jdbc.properties"/>
<settings>
<!-- 控制台输出sql语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<!--给单独的实体类取别名-->
<!--<typeAlias type="com.lwq.domain.User" alias="user"/>-->
<!--批量给实体类取别名:指定包下面所有的类的别名默认为其类名,不区分大小写-->
<package name="com.yx.domain"/>
</typeAliases>
<environments default="development">
<!--开发环境,可以配置多套环境,default指定用哪个-->
<environment id="development">
<!--當前事務交給jdbc處理-->
<