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

作者:伏特加的滋味 时间:2023-08-01 08:09:34 

目的:

在使用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>

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

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

来源:https://blog.csdn.net/yuanyuan214365/article/details/72615090

标签:mybatis,mapper,if
0
投稿

猜你喜欢

  • 将来会是Python、Java、Golang三足鼎立的局面吗

    2023-11-22 09:18:31
  • C#实现更改MDI窗体背景颜色的方法

    2021-07-01 13:06:16
  • 详解C#中 Thread,Task,Async/Await,IAsyncResult的那些事儿

    2021-12-08 20:07:32
  • SpringBoot过滤器与拦截 器深入分析实现方法

    2023-11-28 23:04:15
  • spring boot使用拦截器修改请求URL域名 换 IP 访问的方法

    2022-08-21 20:15:53
  • C#逆变与协变详解

    2021-10-25 08:07:54
  • Java 8 Stream 的终极技巧——Collectors 功能与操作方法详解

    2023-02-01 16:23:30
  • C#中Lambda表达式的用法

    2022-07-29 17:29:56
  • 浅谈Unity脚本生命周期与执行顺序

    2022-05-22 00:47:34
  • Java Pattern和Matcher字符匹配方式

    2022-06-07 21:57:56
  • Unity实现3D循环滚动效果

    2023-04-22 14:05:47
  • eclipse实现DSA数字签名

    2023-08-24 19:11:37
  • C# listview 点击列头排序的实例

    2023-11-26 20:09:05
  • Flutter基于Dart Unwrapping Multiple Optional小技巧

    2023-07-05 11:44:19
  • Android popupWindow弹出窗体实现方法分析

    2021-08-08 08:07:42
  • mall整合SpringTask实现定时任务的方法示例

    2023-09-15 18:08:08
  • 手动实现将本地jar添加到Maven仓库

    2021-06-12 16:06:49
  • Android编程出现Button点击事件无效的解决方法示例

    2023-01-22 09:30:41
  • c#网络唤醒功能实现

    2022-07-03 03:26:51
  • Java IO流—异常及捕获异常处理 try…catch…finally

    2023-03-14 07:35:52
  • asp之家 软件编程 m.aspxhome.com