网站首页 > 精选文章 / 正文
开启flushCache="true"缓存无法使用
如果我们开启flsuhcache每次查询我们都会清空缓存的
不建议这样做
大大降低了我们查询速度
我们正确查询的方式,查询缓存,如果缓存中没有数据,查询数据库中的信息
如果直接查询数据,降低我们查询速度
什么场景我们每次都需要删除缓存
就是在修改的时候
我们每次都需要删除缓存
及时添加最新数据上去
sql的高级写法
我们现在有三个条件
但是每次查询我们只想执行一个调节的方式
我们可以使用choose函数
每次写入我们只执行符合条件的参数
比如
我们订单现在有三个状态
但是每个状态是001对应的sql是付款成功
在choose写法
<choose>
<when test="id ==001 ">
where studentId="付款成功"
</when>
<when test="id == 002">
where studentId="付款失败"
</when>
<otherwise>
where studentId="出现问题"
</otherwise>
</choose>
使用if的方式我们也可以实现上面的写法
if的比较作用还是挺优秀的
可以比较字符串是否相同
比如
我们需要查询一个字段中三个属性,每个属性都对应一个汉字,汉字我们查询选择一个汉字的方式,我们使用字符串比较的方式
其中where作用还是需要说一下
我们看一下在正确的sql中
如果没有where
select * from user where and id =1
这样的sql是会出现错误信息的
但是使用
<where>
where标签会自动去掉前面的and
批量查询
总结一下
我们经常使用mybatis
最多的参数
if判断参数在出入参数的时候使用的好能帮助我们解决很多问题,比如空指针
还有我们在书写业务逻辑的时候
进行多个条件的选择
我们设计一个场景题目
我在支付的时候现在有5个状态
未支付,已经支付,待支付,支付完成,退款
现在我们写一个sql条件,但是他们是在不同的五个字段中
因为当初业务逻辑设计有问题
使用where写法
我们需要写五个字符判断每一个字段是否使用
每次判断会降低效率
我们使用choose
只需要查询适合我们条件进行返回就ok了
比如我们需要在更深入的查询,
在支付中如果查询到已经支付
现在有3个情况
发货,未发货,到货
我们需要再次拼接一个条件
我们再次使用if进行判断
查询
Tags:mybatis批量删除
猜你喜欢
- 2025-06-13 MyBatis与Hibernate的对比分析:探索持久化框架的最佳选择
- 2025-06-13 【Mybatis实战第9天】Mybatis批量插入 batchInsert
- 2025-06-13 别再用 Mybatis Plus 的伪批量新增了,这才是真正的批量新增方式!
- 2025-06-13 真香警告!Alibaba珍藏版mybatis手写文档,刷起来
- 2025-06-13 mybatis批量插入自动生成主键跟日期
- 2025-06-13 SpringBoot整合MyBatis-Plus:从入门到精通
- 2025-06-13 Mybatis Plus批量插入数据到MySQL中
- 2025-06-13 SpringBoot系列Mybatis之批量插入的几种姿势
- 2025-06-13 项目案例:Java多线程批量拆分List导入数据库
- 2025-06-13 Mybatis 批量更新数据 Mysql批量更新数据