查询语句中的if

来源:互联网 发布:数据库黑匣子 编辑:程序博客网 时间:2024/05/18 01:45

  查询语句中的if;以上为我们定义的一个人的属性,数据库中也有一个人的数据表。现在假设需要查询人中的所有男性,同时如果输入参数中年龄不为空,就根据性别和年龄查询。在没有使用动态SQL之前,按照我们的惯有思路,我们需要在Mapper接口中定义两个查询方法,同时分别对应在SQL映射文件中定义两个语句,如下:

  select * from person where GENDER = '男'成华区无痛人流医院咨询
温江人流打胎多少钱
龙泉区妇科在线咨询
金堂人流正规医院
春熙路做无痛人流的收费是怎样的

  select * from person where GENDER = '男' and AGE = #{age}

  这样一来,随着类似的需要越来越多,我们的方法和SQL语句量会增加到很多,并且会发现,其实语句中存在很多重复部分。那么有没有办法能同时应对类似的相关需求,同时减少代码量呢?动态SQL就提供了相关的功能实现这些需求,例如上述场景,我们即可只需定义一个方法,对应的SQL语句写成如下:

  select * from person where GENDER = '男' 双流看宫颈糜烂好的医院
青羊区做人流手术的较佳时间?
天府新区治疗子宫肌瘤专业的医院
青白江治白带异常好的医院
     and AGE = #{age}

  在这项我们将确定的(静态的的部分)select * from person where GENDER = '男'和后面的部分结合起来,通过动态SQL提供的标签给语句预加一层判断,test属性值为布尔类型,true或者false,当为true(即真)时,才会把标签下的内容添加到语句中响应为值,这里的test中即判断输入参数中年龄是否为空,不为空则添加【and AGE = #{age}】到【select * from person where GENDER = '男'】后面,为空则不加,这样就达到了同时满足两种需要,但只定义了一个方法和一条SQL。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 液压剪刃 液压剪油缸 剪叉式液压升降机设计 电动液压剪扩钳 防液压剪的锁 手动液压电缆剪 剪叉式液压升降平台设计 抗液压剪的锁 固定剪叉式液压升降机 东空液压剪 液压钢筋剪价格 防液压剪锁 快速液压钢筋剪 液压剪叉式升降机 液压剪 原理 固定液压升降台 液压升降工作台 液压过滤器 液压站图片 小型液压砖机 秸秆液压打包机价格 什么是液压传动 长城液压油46号 美孚液压油报价 电动液压扳手 液压油泵图片 液压打包机生产厂家 榨油机新型全自动液压榨油机 液压支架结构图 液压千斤顶维修图 液压油箱结构图 手动液压搬运车结构图 全液压转向器分解图 液压千斤顶结构图 液压电磁阀接线图 挖机液压泵分解图 液压油缸装配图 液压支架原理图 液压油缸油封安装图 床用液压杆 高箱床液压杆