您现在的位置是:首页 > 个人日记个人日记
mybatis-09-缓存
2019-02-03 18:20:00【个人日记】390人已围观
简介查询的数据放入内存中,查询更快
缓存
一级缓存
此缓存只是在当前会话(SqlSession)有用
当数据只读取而不改变,则缓存不会消失
如果数据改变,例如使用commit,则当前会话将缓存全部被清除
二级缓存 *
此缓存在当前命名空间(namespace)有用
一级缓存默认开启,二级缓存需要在全局文件中配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration
<!-- 开启二级缓存 -->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<!-- 使用JDBC技术 -->
<transactionManager type="JDBC"/>
<!-- 数据库连接池,mybatis连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/order?useUnicode=true&characterEncoding=utf8&useSSL=true"/>
<property name="username" value="root"/>
<property name="password" value="1538933906"/>
</dataSource>
</environment>
</environments>
<!-- 配置映射文件 -->
<mappers>
<mapper resource="orderMapper.xml"/>
<mapper resource="userMapper.xml"/>
</mappers>
</configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
以上配置需要在全局文件中配置
配置时应该注意顺序,mapper配置应该在最后,设置settings放在开头,数据库environments放在中间
但是缓存需要在磁盘或内存中储存对象信息,所以需要缓存的对象需要实现序列化
User对象应该实现序列化
package com.huangxin.order.model;
import java.io.Serializable;
import java.util.List;
//实现序列化接口
public class User implements Serializable {
private Integer id;
private String userName;
private String userTelephone;
private String userSex;
private List<Orders> orders;
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", userTelephone='" + userTelephone + '\'' +
", userSex='" + userSex + '\'' +
", orders=" + orders +
'}';
}
public List<Orders> getOrders() {
return orders;
}
public void setOrders(List<Orders> orders) {
this.orders = orders;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserTelephone() {
return userTelephone;
}
public void setUserTelephone(String userTelephone) {
this.userTelephone = userTelephone;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
}
User implements Serializable
这样才可以在缓存中写入对象信息
当数据库中执行增删改时,缓存则被清空
当单独调整某个标签缓存,在便签中使用 userCache=false或者true
这个属性可用于查询的所有标签
当使用增删改操作时可以在标签中加入flushCache,当增删改则刷新缓存
Tags: JavaWeb
上一篇: 创建博客心得
下一篇: spring-05-复杂数据类型注入
相关文章
随机图文
评论区
2024-11-13 03:55:29
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信
2019-07-13 14:46:59
得的爽歪歪无无无无无无无无无无无无无无无无无无无