mybatis中foreach嵌套if标签方式

 更新时间:2022年03月23日 09:22:18   作者:小科比000  
这篇文章主要介绍了mybatis中foreach嵌套if标签方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis foreach嵌套if标签

代码实现:

Mapper.java文件

List<Map<String, Object>> getYsxmcodeByYszbh(@Param("qyName") List<String> qyName, @Param("yszh") String yszh);

XXX.xml文件

<select id="getYsxmcodeByYszbh" resultType="java.util.Map">
    <foreach collection="qyName" index="index" item="qy">
        <if test="index != 0">
            union
        </if>
    select ysxmcode from ${qy}_yxsxk.tpc_ysxkz where yszbh=#{yszh,jdbcType=VARCHAR}
    </foreach>
</select>

判断是否为第一个循环,是不加union拼接,否则加上

xml文件 $和 #的区别

${}在预编的时候会直接被变量替换,但是存在被注入的问题,表名必须用${},因为#{}在预编的时候会被解析为?占位符,但当被变量替换的时候会加上 ''单引号,表明不允许加单引号(但是反引号``是可以的)

union与union all区别

1.union all是直接连接,取到得是所有值,记录可能有重复;union 是取唯一值,记录没有重复。所以union在进行表链接后会筛选掉重复的记录,union all不会去除重复记录。

2.union将会按照字段的顺序进行排序;union all只是简单的将两个结果合并后就返回。从效率上说,union all 要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用union all。 

mybatis if和foreach嵌套 (同一个列,不定个数的查询条件)

有这么一种需求

根据输入的内容的个数设置不同个数的查询条件(在一个列上设置不定个数的查询条件),这时就需要根

据foreach循环在一个列上拼接查询条件了。

模板如下图

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于apache poi根据模板导出excel的实现方法

    基于apache poi根据模板导出excel的实现方法

    下面小编就为大家带来一篇基于apache poi根据模板导出excel的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Struts2学习笔记(3)-DMI动态调用方式

    Struts2学习笔记(3)-DMI动态调用方式

    本文主要介绍Struts2的DMI动态调用的两种方式,简单实用,希望能给大家做一个参考。
    2016-06-06
  • SpringBoot Admin的简单使用的方法步骤

    SpringBoot Admin的简单使用的方法步骤

    本文主要介绍了SpringBoot Admin的简单使用的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 利用5分钟快速搭建一个springboot项目的全过程

    利用5分钟快速搭建一个springboot项目的全过程

    Spring Boot的监控能够使开发者更好地掌控应用程序的运行状态,下面这篇文章主要给大家介绍了关于如何利用5分钟快速搭建一个springboot项目的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • response.sendRedirect()实现重定向(页面跳转)

    response.sendRedirect()实现重定向(页面跳转)

    在Java web开发中,使用response.sendRedirect()可实现重定向功能。本文将介绍如何使用该方法进行页面跳转,以及该方法的使用场景和注意事项,感兴趣的可以了解一下
    2023-04-04
  • Java基本数据类型和运算符详解

    Java基本数据类型和运算符详解

    这篇文章主要介绍了Java基本数据类型和运算符,结合实例形式详细分析了java基本数据类型、数据类型转换、算术运算符、逻辑运算符等相关原理与操作技巧,需要的朋友可以参考下
    2020-02-02
  • Java BigDecimal解决double精度丢失的问题

    Java BigDecimal解决double精度丢失的问题

    我们在日常开发中, 有很多时候会遇到小数(double类型)精确计算,本文主要介绍了Java BigDecimal解决double精度丢失的问题,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Java实战入门之双色球彩票小游戏

    Java实战入门之双色球彩票小游戏

    这篇文章主要介绍了Java实战入门之双色球彩票,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • java面试应用上线后Cpu使用率飙升如何排查

    java面试应用上线后Cpu使用率飙升如何排查

    这篇文章主要为大家介绍了java面试中应用上线后Cpu使用率飙升如何排查的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • JAVA编程实现TCP网络通讯的方法示例

    JAVA编程实现TCP网络通讯的方法示例

    这篇文章主要介绍了JAVA编程实现TCP网络通讯的方法,简单说明了TCP通讯的原理并结合具体实例形式分析了java实现TCP通讯的步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08

最新评论