后端之路第三站(Mybatis)——动态操作sql

一、啥是动态操作sql

还是用之前我们的员工管理系统打比方,假设我现在的需求是:不只是完全把姓名、性别、入职时间都输入才能查到信息,我希望只输入姓名的话就根据姓名返回信息,只输入性别的话就根据性别返回信息,只输入入职时间的话就根据这个返回,输入哪个信息就根据哪个信息查询

可是我们sql语句里已经写死了条件啊,少一个条件就会报错

这时就要用到【动态sql】,Mybatis提供了【动态sql】的方法,不单单是动态的设置参数值,还能动态地修改条件

这里我就要道个歉了,上一篇我说XML映射文件没用,非也,就是XML映射文件才提供了动态sql地语法

二、XML映射文件里动态sql

1、if语法

那么我们要实现那个【输入哪个信息就根据哪个信息查询】功能,就能想到 if条件判断

if(有“姓名”的值传回),那就在where后面接上name的查询条件

if(有“性别”的值传回),那就在where后面接上gender的查询条件

......

if(啥值都没有传回),那就后面连where也不需要了,直接select * from emp order by update_time desc;就够了

那么在XML实现这些语法就是由它提供的<where></where>、<set></set><if test="..."></if>标签

<where></where>的作用:

1、它是针对【select】的查询语句有用的标签

2、动态根据if判断条件符不符合,如果都不符合,sql语句就没必要带个where,自动不显示

3、如果前一个if不符合条件而后一个符合,那么自动检查到符合条件的那个sql部分,把“and”去掉。

比如案例里不传name值,但是有gender,就会变成select * from emp where

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岑梓铭

网络乞丐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值