mybatis学习

1、mybatis缓存机制

mybatis缓存机制分为一级缓存和二级缓存。

mybatis默认开启一级缓存,二级缓存需要更改配置文件开启。数据库操作时需要构造sqlSession对象,sqlSession中有一个内存区域存储缓存,当sqlSession关闭,会清空缓存数据。

一级缓存是sqlSession级别的,即一个sqlSesion先后发起同一个查询请求时,第一个查询结束后,会将数据缓存到一级缓存里,第二个查询请求将不走数据库,而直接从一级缓存中获取数据,提高查询效率。

二级缓存是mapper级别的缓存。当两个sqlSesion查询同一个nameSpace下的同一sql时,第二个查询不走数据库,直接从缓存中获取。

当sqlSession执行commit操作时,会清空缓存,是为了缓存中数据是最新的,避免出现脏读。

开启二级缓存:

两种方式:

1.在SqlMapConfig.xml配置二级缓存总开关

<settings>

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

</settings>

2.在mapper.xml单独开启此mapper的二级缓存

通过<cache/>,<cache-ref/>或@CacheNamespace,@CacheNamespaceRef标记使用缓存的Mapper.xml或Mapper接口(同一个namespace,不能同时使用)才会有二级缓存

3、#和$的区别

      $只是将值简单的进行字符串拼接,有sql注入的危险。#以绑定变量的方式将值传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值