您现在的位置是:首页 > 个人日记个人日记
mybatis-09-缓存
2019-02-03 18:20:00【个人日记】457人已围观
简介查询的数据放入内存中,查询更快
缓存
一级缓存
此缓存只是在当前会话(SqlSession)有用
当数据只读取而不改变,则缓存不会消失
如果数据改变,例如使用commit,则当前会话将缓存全部被清除
二级缓存 *
此缓存在当前命名空间(namespace)有用
一级缓存默认开启,二级缓存需要在全局文件中配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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;@Overridepublic 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-02-配置细节
下一篇: mybatis-06-映射关系
相关文章
随机图文
评论区
2025-11-09 06:13:35
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信

2019-07-13 14:46:59
得的爽歪歪无无无无无无无无无无无无无无无无无无无