在mybatis中使用mapper进行if条件判断
作者:伏特加的滋味 发布时间:2023-08-01 08:09:34
标签: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>
经过测试,是可以实现的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/yuanyuan214365/article/details/72615090


猜你喜欢
- 本文实例为大家分享了C#实现简易多人聊天室的具体代码,供大家参考,具体内容如下只有一个群聊的功能服务端using System;using
- 本文实例为大家分享了Android使用AIDL方式实现播放音乐的具体代码,供大家参考,具体内容如下思路:① 新建两个APP项目或者Modul
- 实现方式通过挨个罗列的方式一次复制子对象是非常耗费人力的,如果子对象是引用类型,则还要需要考虑是否对子对象进一步深拷贝。实际应用中,一个类如
- 本文实例为大家分享了java实现随机数生成器的具体代码,供大家参考,具体内容如下自己编的随机数生成器,比较简陋,功能也单一,当作练手。App
- Monitor对象1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是M
- static 表示静态,它可以修饰属性,方法和代码块。1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这
- 本文实例讲述了C#实现带百分比的进度条功能。分享给大家供大家参考,具体如下:功能需求:如果程序中会执行一个耗时的计算过程,我想在用户点击按钮
- 为了让我提供的通用 Mapper 的 boot-starter 同时兼容 Spring Boot 1.x 和 2.x,增加了这么一个工具类。
- /// <summary> /// 遍历Co
- 封装在如何理解面向对象这篇文章中,提到所谓的封装就是“功能都给你做好了,你不必去理解它是怎么写出来的,直接使用即可。”。但你得清楚一点,那就
- 原理解析:利用RandomAccessFile在本地创建一个随机访问文件,文件大小和服务器要下载的文件大小相同。 根据线程的数量(假设有三个
- hystrixDashboard服务监控除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboar
- 本文实例讲述了Spring和Hibernate的整合操作。分享给大家供大家参考,具体如下:一 web配置<?xml version=&
- CountDownLatch 是一个非常实用的多线程控制工具类。” Count Down ” 在英文中意为倒计数, Latch 为门问的意思
- 最近在学习JavaWeb时,有用到鼠标移动事件,所以今天在这里记录一个相关的案例,同时也是对相关知识的一个巩固,效果为在鼠标移动到表格对应行
- 一、基本概念C#只有两种数据类型:值类型和引用类型值类型在线程栈分配空间,引用类型在托管堆分配空间值类型转为引用类型称成为装箱,引用类型转为
- 1、什么是 ThreadLocal:ThreadLocal,即线程本地变量,如果你创建了一个变量,那么访问这个变量的每个线程都会有这个变量的
- Java Config 下的Spring Test方式用了三种方式:1.纯手动取bean:package com.wang.test;imp
- 废话开篇:iOS与android在实现列表界面的时候是有重用机制的,目的就是减少内存开销,用时间换空间。个人感觉flutter并没有特别强调
- 一、简介编写手机App时,有时需要使用文字转语音(Text to Speech)的功能,比如开车时阅读收到的短信、导航语音提示、界面中比较重