MyBatis笔记三

本文核心内容:①:MyBatis实现Sql复用、通用查询、高效修改、批量删除、模糊查询②:MyBatis的缓存机制。



一:动态SQL

①:共性SQL

 

②:通用查询

 

③:高效修改

 

④:批量删除

批量删除有两种方式:

1:这一种效率低下,但是实现简单。

for(String id:list){

deleteById(id);

}


2:

 

 

 

⑤:模糊查询

想解决模糊查询

首先分清MyBatis发送Sql,#{}与${}绑定数据的差别。

#{}采用站位符的方式绑定数据

${}采用字符拼接的方式绑定数据(这种不能防止SQL注入)

 

 

 

二:MyBatis缓存

 

 

①:概念:用来存储用户查询的数据

②:作用:加快(被缓存过的数据)查询效率.

③:核心思路:

   1. 数据尽可能从内存中获取,较少硬盘检索需要花费的时间

   2. 减少服务器tomcat通过网络URL和数据库交互次数,提高查询效率,降低数据库访问压力。

 

④:缓存机制:

每次查询数据,会先尝试从缓存中获得数据,

如果得到,则查询结束(不会查询数据库, 不会发送sql)

如果没有得到数据,发送sql从数据库中获得数据,同时将结果数据存入缓存中.

 

⑤:编码

MyBatis缓存*开发步骤

1.开启MyBatis全局缓存设置

<settings>

<setting name="cacheEnabled" value="true"/>

</settings>

2.在要使用缓存的mapper文件中,添加

<cache></cache>

*当前mapper中的查询将会使用缓存;

 

3.将实体实现Serializable接口

*对象在缓存中将会被序列化存储.

 

 

 

避免脏数据:缓存中的数据与数据库中的数据不一致时,会自动清空缓存,重新查询数据库

 

总结:

I. 查询操作之后,必须关闭SqlSession,确保查询结果存储到的缓存空间中。

II. 增删改操作之后,必须提交事务,才清空缓存。

 


猜你喜欢

转载自blog.csdn.net/Sugar_map/article/details/80300655