MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

mybatis高级用法(mybatis语法详解)

2025-06-13 13:42 huorong 精选文章 2 ℃ 0 评论


开启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批量删除

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言