广告
返回顶部
首页 > 资讯 > 精选 >Mybatis的mapper.xml中if标签test判断怎么使用
  • 316
分享到

Mybatis的mapper.xml中if标签test判断怎么使用

2023-07-01 00:07:22 316人浏览 八月长安
摘要

本文小编为大家详细介绍“mybatis的mapper.xml中if标签test判断怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis的mapper.xml中if标签test判断怎么使用”文章能帮助大家解决疑惑,下面跟着小

本文小编为大家详细介绍“mybatis的mapper.xml中if标签test判断怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis的mapper.xml中if标签test判断怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

mapper.xml中if标签test判断的用法

1. 字符串等于条件的两种写法

① 将双引号和单引号的位置互换

<if test=' testString != null and testString == "A" '>   AND 表字段 = #{testString}</if>

② 加上.toString()

<if test=" testString != null and testString == 'A'.toString() ">  AND 表字段 = #{testString}</if>

2. 非空条件的判断

长久以来,我们判断非空非null的判断条件都是如下所示:

<if test="xxx !=null and xxx !=''">

但是这样的判断只是针对String的,如果是别的类型,这个条件就不一定成立了,比如最经典的:当是数字0时,这个判断就会把0过滤掉,所以如果要判断数字,我们一般会再加上一个0的判断(这和mybatis的源码逻辑有关,有兴趣的可以去看看源码)

<if test="xxx !=null and xxx !='' or xxx == 0">

但是如果传进来的是数组或者集合呢?我们要再写别的判断吗?能不能封装个方法呢?

答案是可以的。

if标签里面的test判断是可以使用工具类来做判断的,毕竟test后面跟的也是一个布尔值,其用法是:

<if test="@完整的包名类名@方法名(传参)">

例如:

<if test="@com.xxx.util.MybatisTestUtil@isNotEmpty(obj)">

下面是我写的一个简陋的工具类,不是很全面,抛砖引玉,各位可以根据需要补充。

import java.util.Collection;import java.util.Map;public class MybatisTestUtil {    public static boolean isEmpty(Object o) {        if (o == null) {            return true;        }        if (o instanceof String) {            return ((String) o).trim().length() == 0;        } else if (o instanceof Collection) {            return ((Collection) o).isEmpty();        } else if (o instanceof Map) {            return ((Map) o).isEmpty();        } else if (o.getClass().isArray()) {            return ((Object[]) o).length == 0;        } else {            return false;        }    }    public static boolean isNotEmpty(Object o) {        return !isEmpty(o);    }}

3. 判断数组是否包含某个元素

<if test="list.contains(xxx)">    //...</if>

注意,元素类型是字符串的话,参考1中的写法,一般这样写

<!--包含--><if test="list.contains('示例元素'.toString())">    //...</if><!--不包含--><if test="!list.contains('示例元素'.toString())">    //...</if>

mapper.xml <if test>书写时候的一些坑

1. 分页

map中添加了两个int类型的数据,

map.put("startNum",(page.getPageNum()-1)*page.getNumPerPage());map.put("pageSize",page.getNumPerPage());

错误的sql书写:

<if test="startNum != null  and startNum != '' ">       LIMIT #{startNum},#{pageSize}</if>

正确的SQL书写

<if test="startNum != null">       LIMIT #{startNum},#{pageSize}</if>

因为startNum里存的是int数据,所以不能与空字符串进行比较,强行比较时会报错。

2. 字符串形式的数据比较

map中添加的是一个字符串形式的“1”

map.put("uploadFlag",upload.getUploadFlag());

如果想在XML中比较,以下两种方式都可以:

2.1 test使用双引号

比较的对象使用单引号点toString()方法:

<if test="uploadFlag=='1'.toString()">     and pw.id in (select pw_id from t_contract_upload)</if>

2.2 test使用单引号

比较的对象直接使用双引号:

<if test='uploadFlag=="2" '>     and pw.id in (select pw_id from t_contract_upload)</if>

读到这里,这篇“Mybatis的mapper.xml中if标签test判断怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Mybatis的mapper.xml中if标签test判断怎么使用

本文链接: https://www.lsjlt.com/news/331966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis的mapper.xml中if标签test判断怎么使用
    本文小编为大家详细介绍“Mybatis的mapper.xml中if标签test判断怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis的mapper.xml中if标签test判断怎么使用”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-07-01
  • Mybatis的mapper.xml中if标签test判断的用法说明
    目录mapper.xml中if标签test判断的用法1. 字符串等于条件的两种写法2. 非空条件的判断3. 判断数组是否包含某个元素mapper.xml <if test>...
    99+
    2022-11-13
  • mybatis test标签怎么判断值是否相等
    本篇内容介绍了“mybatis test标签怎么判断值是否相等”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybatis test标签判断...
    99+
    2023-06-20
  • mybatis中的if test判断入参值问题怎么解决
    本文小编为大家详细介绍“mybatis中的if test判断入参值问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis中的if test判断入参值问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-30
  • Mybatis中where标签与if标签怎么结合使用
    这篇文章主要介绍“Mybatis中where标签与if标签怎么结合使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mybatis中where标签与if标签怎么结合使用”文章能帮...
    99+
    2023-07-05
  • mybatis中的多重if条件判断怎么用
    这篇“mybatis中的多重if条件判断怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatis中的多重if条件判...
    99+
    2023-06-29
  • Mybatis的xml中使用if/else标签的具体使用
    目录使用if标签进行查询where标签出场if/else 使用 choose,when,otherwise 代替使用if标签进行查询 SELECT ord...
    99+
    2022-11-13
  • php中的if判断语句怎么使用
    今天小编给大家分享一下php中的if判断语句怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、基本的if语句基本的i...
    99+
    2023-07-05
  • 怎么在Shell中使用if判断语句
    怎么在Shell中使用if判断语句?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. if的基本语法if与[之间要有空格2.[]与判断条件之间也必须有空格3.]与;之间不能有空...
    99+
    2023-06-09
  • Shell脚本中怎么使用IF条件判断和判断条件
    Shell脚本中怎么使用IF条件判断和判断条件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言:      无论什么编程语言...
    99+
    2023-06-09
  • mybatis的where标签怎么使用
    本篇内容主要讲解“mybatis的where标签怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis的where标签怎么使用”吧!我们经常在动态构造sql时,...
    99+
    2023-06-29
  • mybatis中<choose>标签怎么使用
    本文小编为大家详细介绍“mybatis中<choose>标签怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis中<choose>标签怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-30
  • 怎么在Linux中使用shell条件判断if中的-a到-z
    本篇文章为大家展示了怎么在Linux中使用shell条件判断if中的-a到-z,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ]...
    99+
    2023-06-09
  • 解决Mybatis中foreach嵌套使用if标签对象取值的问题
    目录foreach嵌套使用if标签对象取值问题大体格式解决办法代码如下Mybatis if 语句嵌套要求foreach嵌套使用if标签对象取值问题 最近做项目过程中,涉及到需要在 M...
    99+
    2022-11-13
  • 怎么在MyBatis中使用动态SQL标签
    这篇文章将为大家详细讲解有关怎么在MyBatis中使用动态SQL标签,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.MyBatis动态SQLMyBatis 的强大特性之一便是它的动态 SQ...
    99+
    2023-06-14
  • 如何解决Mybatis中foreach嵌套使用if标签对象取值的问题
    今天小编给大家分享一下如何解决Mybatis中foreach嵌套使用if标签对象取值的问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-06-29
  • dedecms二级菜单中判断子菜单标签的使用方法
    最近做一个项目,需要用到dedecms的二级菜单,在其中需要判断哪些一级菜单有子菜单,有的才显示弹出下拉框,没有的则不显示,可以用js来实现,但是,js长时间没用都快忘记了,所以干脆用dedecms的自带的标签进行判断,...
    99+
    2022-06-12
    dedecms 二级菜单 标签判断
  • Python中不使用If-Elif 语句怎么判断某个数字所属的等级
    这篇文章主要介绍“Python中不使用If-Elif 语句怎么判断某个数字所属的等级”,在日常操作中,相信很多人在Python中不使用If-Elif 语句怎么判断某个数字所属的等级问题上存在疑惑,小编查阅了...
    99+
    2022-10-19
  • HTML中的video标签怎么使用
    这篇文章主要为大家展示了“HTML中的video标签怎么使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML中的video标签怎么使用”这篇文章吧。 &...
    99+
    2022-10-19
  • HTML中的img标签属性怎么使用
    这篇文章主要讲解了“HTML中的img标签属性怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML中的img标签属性怎么使用”吧!描述HTML&l...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作