在mybatis中使用mapper进行if条件判断

 更新时间:2021年01月06日 10:50:24   作者:伏特加的滋味  
这篇文章主要介绍了在mybatis中使用mapper进行if条件判断,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

目的:

在使用mybatis框架中mapper文件有自动生成,但有时需要自己添加sql语句进行开发,当遇到需要使用 if进行条件判断的时候该怎么写?

查询sql语句如下:

<select id="queryData" parameterType="com.pojo.QueryDetailReq" resultType="com.pojo.MxDataInfo">
 select * from db_trd.tb_trd_secu_order where order_status=6
  <if test="channelNo!= null" >
   and channel_no = #{channelNo,jdbcType=INTEGER}
  </if>
  <if test="reportNo!=null" >
   and report_no = #{reportNo,jdbcType=INTEGER}
  </if>
  <if test="companyNo!= null" >
   and company_no = #{companyNo,jdbcType=VARCHAR}
  </if>
  <if test="orderNo!=null" >
   and order_no = #{orderNo,jdbcType=INTEGER}
  </if>
  <if test="stockCode!=null" >
   and stock_code = #{stockCode,jdbcType=VARCHAR}
  </if>
 </select>

语句解析:

1、if语句的格式 ;

2、test中的字段 为parameterType中 com.pojo.QueryDetailReq 的对象 (入参)

3、resultType 为返回查询数据对象 (结果集)

补充:mabatis mapper文件中 使用if条件插入字段和数据

有时候我们插入数据库数据的时候,插入字段都是不确定的,那么我们也可以用if条件来过滤一些字段

废话不多说,直接上代码

<insert id="ORDER_I" parameterType="hashmap">
  insert into t_order
  <trim prefix="(" suffix=")" suffixOverrides=",">
   <if test="orderNo != null">
    orderNo,
   </if>
   <if test="serviceName != null">
    serviceName,
   </if>
   <if test="idcard != null">
    idcard,
   </if>
   <if test="name != null">
    name,
   </if>
   <if test="requestData != null">
    requestData,
   </if>
   <if test="responseData != null">
    responseData,
   </if>
   <if test="status != null">
    status,
   </if>
   <if test="updatedTime != null">
    updatedTime,
   </if>
   <if test="completionTime != null">
    completionTime,
   </if>
   <if test="bae007 != null">
    bae007,
   </if>
   <if test="operId != null">
    operId,
   </if>
   <if test="operName != null">
    operName,
   </if>
   <if test="remark != null">
    remark,
   </if>
  </trim>
  <trim prefix="values (" suffix=")" suffixOverrides=",">
   <if test="orderNo != null">
    #{orderNo},
   </if>
   <if test="serviceName != null">
    #{serviceName},
   </if>
   <if test="idcard != null">
    #{idcard},
   </if>
   <if test="name != null">
    #{name},
   </if>
   <if test="requestData != null">
    #{requestData},
   </if>
   <if test="responseData != null">
    #{responseData},
   </if>
   <if test="status != null">
    #{status},
   </if>
   <if test="updatedTime != null">
    #{updatedTime},
   </if>
   <if test="completionTime != null">
    #{completionTime},
   </if>
   <if test="bae007 != null">
    #{bae007},
   </if>
   <if test="operId != null">
    #{operId},
   </if>
   <if test="operName != null">
    #{operName},
   </if>
   <if test="remark != null">
    #{remark},
   </if>
  </trim>
 </insert>

经过测试,是可以实现的。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • 如何构建可重复读取inputStream的request

    如何构建可重复读取inputStream的request

    这篇文章主要介绍了如何构建可重复读取inputStream的request,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java基于servlet实现文件上传功能解析

    java基于servlet实现文件上传功能解析

    这篇文章主要为大家详细介绍了java基于servlet实现上传功能,后台使用java实现,前端主要是js的ajax实现,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • java实现双人五子棋游戏

    java实现双人五子棋游戏

    这篇文章主要为大家详细介绍了java实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Java通俗易懂系列设计模式之建造者模式

    Java通俗易懂系列设计模式之建造者模式

    这篇文章主要介绍了Java通俗易懂系列设计模式之建造者模式,对设计模式感兴趣的读者,一定要看一下
    2021-04-04
  • Mybatis参数传递示例代码

    Mybatis参数传递示例代码

    这篇文章主要给大家介绍了关于Mybatis参数传递的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • feign 调用第三方服务中部分特殊符号未转义问题

    feign 调用第三方服务中部分特殊符号未转义问题

    这篇文章主要介绍了feign 调用第三方服务中部分特殊符号未转义问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Spring+EHcache缓存实例详解

    Spring+EHcache缓存实例详解

    这篇文章主要为大家详细介绍了Spring+EHcache缓存实例,EhCache是一个纯Java的进程内缓存框架,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • springboot Controller直接返回String类型带来的乱码问题及解决

    springboot Controller直接返回String类型带来的乱码问题及解决

    文章介绍了在Spring Boot中,当Controller直接返回String类型时可能出现的乱码问题,并提供了解决办法,通过在`application.yaml`中设置请求和响应的编码格式,并在自定义配置类中进行配置,可以有效解决这一问题
    2024-11-11
  • ThreadLocal的set方法原理示例解析

    ThreadLocal的set方法原理示例解析

    这篇文章主要为大家介绍了ThreadLocal的set方法原理示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Mybatis的动态Sql组合模式详情

    Mybatis的动态Sql组合模式详情

    这篇文章主要介绍了Mybatis的动态Sql组合模式详情,这篇文章从组合模式的角度分析了Mybatis动态sql的部分,SqlNode是组合模式的Component接口,更多相关内容需要的小伙伴可以参考一下
    2022-08-08

最新评论