mybatis中的if-else及if嵌套使用方式
更新时间:2022年03月23日 09:55:58 作者:小小猴冲刺
这篇文章主要介绍了mybatis中的if-else及if嵌套使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
if-else及if嵌套使用方式
案例一:if-else
在使用mybatis mapper 动态sql时,不免会出现if-else的使用,但是好像又没有这种语法,提供的是choose标签代替if-else
例如:
select * from t_stu t <where> <choose> <when test="query == 0"> and t.status = 1 </when> <otherwise> and t.status NOT IN (9,5) </otherwise> </choose> and t.delete_status = 1 </where>
也可以用多个if判断实现:
select * from t_stu t <where> <if test="query == 0"> and t.status = 1 </if> <if test="query != 0"> and t.status NOT IN (9,5) </if> and t.delete_status = 1 </where>
案例二:if嵌套
在实际编码过程中会有一些判断条件会一直重复使用,一直写在if标签中写的代码会特长,而且臃肿
select * from t_stu t <where> <if test="query == 0 and type = 1"> and t.type = 'we' and t.delete = 1 </if> <if test="query == 0 and type = 2"> and t.type = 'wq' and t.delete = 1 </if> <if test="query == 0 and type = 3"> and t.type = 'wr' and t.delete = 1 </if> </where>
变现后:
select * from t_stu t <where> <if test="query == 0"> <if test="type = 1"> and t.type = 'we' </if> <if test="type = 2"> and t.type = 'wq' </if> <if test="type = 3"> and t.type = 'wr' </if> </if> and t.delete = 1 </where>
mybatis if-else写法
mybaits中没有else要用chose when otherwise代替
<choose> <when test=""> //... </when> <otherwise> //... </otherwise> </choose>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
多个SpringBoot项目采用redis实现Session共享功能
这篇文章主要介绍了多个SpringBoot项目采用redis实现Session共享,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09
springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服务的坑
这篇文章主要介绍了springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服务的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-06-06


最新评论