MyBatis的部分知识点
一、resultMap的constructor配置方式
<resultMap id="" type="">
<constructor>
<!--主键-->
<idArg column="id" javaType="_int"/>
<!--其他列-->
<arg column="" javaType=""/>
</constructor>
</resultMap>
二、MyBatis使用注解配置SQL
@Select
@Insert/@Options
@Update
@Delete
如果需要使用复杂的动态SQL,建议使用XML方式;
如果是简单的SQL,可以考虑使用注解
三、MyBatis缓存
对于一些我们经常查询的并且不经常改变的数据,如果每次查询都要与数据库进行交互,那么大大降低了效率,因为我们使用缓存,将一些对结果影响不大且经常查询的数据存放在内存中,从而减少与数据库的交互来提高效率,这就是缓存的优势。
(一)、MyBatis缓存的分类
1. 一级缓存:同一个SqlSession对象, 在参数和 SQL 完全一样的情况下, 只执行一次 SQL 语句(前提缓存没有过期)
2. 二级缓存:Mybatis的二级缓存是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,同一个SQLSessionFactory创建的多个SqlSession共享。
(二)、一级缓存
1、同一个SqlSession的情况
在参数和 SQL 完全一样的情况下,只执行一次 SQL 语句
2、不同的SqlSession的情况
不使用缓存
3、清空缓存
刷新缓存是清空这个SqlSession的所有缓存, 不单单是某个键
Java代码方式:sqlSession.clearCache();
xml方式 flushCache="true"
4、小结:
①. 同一个SqlSession中, Mybatis 会把执行的方法和参数通过算法生成缓存的键值, 将键值和结果存放在一个 Map 中, 如果后续的键值一样, 则直接从 Map 中获取数据;
②. 不同的SqlSession之间的一级缓存是相互隔离的;
③. 用一个 SqlSession, 可以通过代码或XML配置在查询前清空缓存;
④. insert、update、delete 语句会清空缓存。
(三)、二级缓存
二级缓存指的是 mybatis中SqlSessionFactory对象的缓存 ,由同一个SqlSessionFactory对象 创建的SqlSession共享缓存。
1、开启
①、在配置文件 mybatis-conf.xml中配置,让mybatis支持二级缓存。 新版本中已经默认为true,可以不用设置。
<!--设置-->
<settings>
<!--开启二级缓存-->
<setting name="cacheEnabled" value="true"/>
</settings>
②、在映射配置文件Mapper.xml中 开启支持二级缓存
<!--开启支持二级缓存-->
<cache/>
③、操作支持二级缓存,在select标签 加上useCache="true"
MyBatis结果来源顺序: 一级缓存 -> 二级缓存(如果开启) —> 数据库
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgkagce
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13