`

mybatis中判断两个集合是否为空

 
阅读更多
引用
在工作中遇到mybatis中判断两个集合是否为空,不为空的话遍历;都为空执行  1=0 or 1=0,则查询出来空集合

select login,name,email from users u where
<choose>
    <when test="sameEmailList != null and sameEmailList.size > 0 ">
        email in <foreach collection="sameEmailList" item="email" open="(" separator="," close=")">
        #{email, jdbcType=VARCHAR}
        </foreach>
    </when>
    <otherwise>
        1 = 0
    </otherwise>
</choose>
<choose>
    <when test="sameNameList != null and sameNameList.size > 0">
        or name in <foreach collection="sameNameList" item="name" open="(" separator="," close=")">
        #{name, jdbcType=VARCHAR}
    </foreach>
    </when>
    <otherwise>
        or 1 = 0
    </otherwise>
</choose>
ORDER by name, email ASC


https://blog.csdn.net/cloudzpc/article/details/78254479
分享到:
评论

相关推荐

    springmybatis

    1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...

    基于MyBatis3.2的一个Demo,供新手参考

    在这个基于MyBatis3.2的Demo中,我们可以学习到MyBatis的核心概念和关键功能。首先,MyBatis3.2版本引入了一些改进和优化,如增强的动态SQL支持,更灵活的XML映射,以及对Java 8的支持,这使得开发更为便捷高效。 1...

    MyBatis3DTD约束

    7. **association**和**collection**:这两个元素用于处理复杂的对象关系映射,例如一对一和一对多的关系。它们可以包含nestedSelect、nestedResultMap等属性,定义如何获取关联数据。 8. **typeHandler**:用于...

    mybatis-3.5.9 源码(mybatis-3-mybatis-3.5.9.zip)

    - MyBatis 的强大之处在于其支持动态 SQL,通过 if、choose、when、otherwise、foreach 等标签,可以在 XML 映射文件中编写复杂的条件判断和循环。 8. **缓存机制** - MyBatis 提供了本地缓存(Local Cache)和二...

    mybatis-3.0.4源码

    例如,`&lt;if&gt;`,`&lt;choose&gt;`,`&lt;when&gt;`,`&lt;otherwise&gt;`用于条件判断,`&lt;foreach&gt;`用于遍历集合。 四、参数映射 MyBatis支持两种参数映射方式: 1. 位置参数:使用`#{}`符号,例如`SELECT * FROM table WHERE id = #{id...

    mybatis3.2.7开发架包

    配置文件通常包含两个部分:全局配置和Mapper配置。全局配置包括数据库连接信息、事务管理、日志设置等;Mapper配置则是将XML或注解形式的SQL语句与Mapper接口关联起来,使得在代码中可以直接调用接口方法执行SQL。 ...

    Mybatis用户指南及演示代码

    Mybatis的动态SQL功能非常强大,允许在XML映射文件中使用条件判断、循环等结构,使得SQL语句可以根据实际需求灵活生成。 5. **Mapper接口与Mapper XML的关联** Mybatis通过注解或者XML文件将Mapper接口与对应的...

    mybatis3.5.6zip

    例如,`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`等标签用于条件判断,`&lt;foreach&gt;`用于循环遍历集合并生成in语句。 4. **Mapper接口与XML映射**:MyBatis通过Mapper接口和对应的XML映射文件实现了SQL语句与Java...

    MyBatis学习实例

    MyBatis,作为Java开发中的一个热门持久层框架,它为开发者提供了强大的SQL映射功能,使得数据库操作变得更加灵活和高效。本资源“MyBatis学习实例”旨在帮助你深入理解并掌握MyBatis的核心概念和实践应用。 1. **...

    MyBatis3 中文版用户指南手册

    - **if**:根据条件判断是否包含某部分 SQL。 - **choose**、**when**、**otherwise**:类似于 switch-case 语句。 - **trim**、**where**、**set**:用于优化生成的 SQL 语句。 - **foreach**:用于循环遍历集合。 ...

    iBatis和MyBatis对比

    在Java EE开发领域,iBatis和MyBatis是两个广受欢迎的持久层框架,它们都提供了SQL映射的功能,帮助开发者处理数据库操作。iBatis作为早期的代表,以其简洁和灵活性赢得了开发者们的青睐,特别是对于熟悉SQL的程序员...

    mybatis-3.2.8.jar+cglib-2.2.jar+asm-3.3.jar

    在本主题中,我们主要关注MyBatis的3.2.8版本,以及与之配合使用的两个依赖库:CGLIB和ASM。 1. MyBatis 3.2.8: MyBatis 3.2.8是MyBatis框架的一个版本,它提供了对数据库操作的高度灵活和强大的支持。此版本包含...

    SQL.rar_MyBatis3DynamicSql_dynamic mybatis_mybatis_mybatis Dyna

    `src`目录是源代码存放的地方,通常包含`main`和`test`两个子目录,分别存放主代码和测试代码。在MyBatis项目中,`main/java`下会包含服务层、DAO层的Java类,`main/resources`则包含配置文件,如MyBatis的全局配置...

    ORM框架之Mybatis

    MyBatis内置了两级缓存:一级缓存是SqlSession级别的,而二级缓存是Mapper级别的,可以跨多个SqlSession共享数据,有效提升性能。 ### 8. MyBatis插件 通过自定义插件,可以拦截SqlSession或Executor的执行过程,...

    MyBatis 中动态 SQL 的示例

    例如,当查询用户信息时,我们可能需要根据用户是否为空来决定是否添加WHERE子句: ```xml SELECT * FROM user != null"&gt; username = #{username} != null"&gt; AND email = #{email} ``` 2. `...

    mybatis调用mysql存储过程

    在MySQL中,创建一个简单的存储过程,例如计算两个数的和: ```sql DELIMITER // CREATE PROCEDURE addNumbers(IN num1 INT, IN num2 INT, OUT result INT) BEGIN SET result = num1 + num2; END // ...

    myBatis官方文档

    同时,还需要为每个Mapper接口创建对应的XML映射文件,用于定义SQL语句和结果映射。 **3. SQL映射** myBatis允许用户自定义SQL,包括增删改查操作。SQL可以通过XML文件或注解来编写,提供动态SQL的支持,如if、...

    mybatis学习文档

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...

    MyBatis完整案例(增删改查)

    在这个"MyBatis完整案例(增删改查)"中,我们将深入探讨MyBatis如何实现对数据库的基本操作,包括添加(Insert)、删除(Delete)、更新(Update)和查询(Select)。以下是一些关键知识点: 1. **MyBatis配置**:...

    mybatis3下载

    在本压缩包中,包含的是 MyBatis 3.4.6 版本的源码,这个版本发布于2018年,是 MyBatis 的一个重要里程碑。 首先,让我们详细了解一下 MyBatis 的核心特性: 1. **XML 和注解配置**:MyBatis 提供了 XML 和注解两...

Global site tag (gtag.js) - Google Analytics