首页 > 其他分享 >mybatis exists 中使用代替in关键字

mybatis exists 中使用代替in关键字

时间:2024-09-12 23:02:53浏览次数:7  
标签:product exists 关键字 book 数据量 mybatis id select

 

 

使用场景,in适合数据量小的时候,exists适合数据量大的时候。

       <if test="torqueRecordPageDTO.vinList != null and torqueRecordPageDTO.vinList.size >0">
            and exists (
                select 1 from (
                <foreach collection="torqueRecordPageDTO.vinList" item="item" index="index" separator="union all">
                    select #{item} as vin
                    from dual
                </foreach>
                 ) a where a.vin = f.record_vin and a.product_id = t1.product_id
            )
        </if>
<!--        <if test="torqueRecordPageDTO.vinList != null and torqueRecordPageDTO.vinList.size >0">-->
<!--            AND F.record_vin in-->
<!--            <foreach collection="torqueRecordPageDTO.vinList" separator="," item="v" open="(" close=")">-->
<!--                #{v}-->
<!--            </foreach>-->
<!--        </if>-->

  

 

 <select id="getProductCapitalBookListByIds" resultMap="ProductCapitalBookResultMap">
        SELECT
        <include refid="ProductCapitalBook_Column_List"/>
        FROM
        product_capital_book t1
        WHERE 1 = 1
        <if test="booksRequestList!= null and booksRequestList.size() > 0">
            and exists (
                select 1 from (
                    <foreach collection="booksRequestList" item="item" index="index" separator="union all">
                        select #{item.bookId} as book_id,#{item.productId} as product_id
                        from dual
                    </foreach>
                ) a where a.book_id=t1.book_id and a.product_id = t1.product_id
            )
        </if>
    </select>

  

使用场景,in适合数据量小的时候,exists适合数据量大的时候。

原文地址:https://blog.csdn.net/weixin_43763459/article/details/121422693

标签:product,exists,关键字,book,数据量,mybatis,id,select
From: https://www.cnblogs.com/xianz666/p/18411296

相关文章

  • 《深入理解 Java 中的 super 关键字》
    目录一、为什么需要super?二、super的理解及可调用结构(一)super是对父类的引用(二)super调用构造器三、子类对象实例化全过程一、为什么需要super?子类继承父类以后,可能会对父类的方法进行重写。在这种情况下,有时候我们需要在子类中调用父类中被重写的方法。此外,如果子类和......
  • mybatis in中超过1000个值解决办法(超简单)
    众所周知sql中条件in的值是不能超过1000个的,而mybatis可以使用动态sql拼接的方式绕开这个限制,网上看了很多例子,我感觉都不太好理解,下面介绍一个超简单的例子。select*fromuser_infowhere1=1<iftest="userList!=nullanduserList.size()>0">and(userIdin<f......
  • 【Java】—— Java面向对象高级:抽象类与抽象方法(或abstract关键字)
    目录6.抽象类与抽象方法(或abstract关键字)6.1由来6.2语法格式6.3使用说明6.4注意事项练习:工资系统设计(1)MyDate类包含:(2)定义一个Employee类,该类包含:(3)定义SalariedEmployee类继承Employee类,(4)参照SalariedEmployee类定义HourlyEmployee类,(5)定义PayrollSystem类,......
  • Mybatis与Mybatis-plus的比较
    MyBatis和MyBatis-Plus都是流行的JavaORM框架,它们在处理数据库操作时各有优势和特点。以下是对两者的比较:MyBatisMyBatis是一个成熟的ORM框架,它提供了映射SQL语句到Java对象的能力。以下是MyBatis的一些优缺点:优点:灵活性高:MyBatis允许开发者编写原生SQL,提......
  • 浅析 MyBatis 中的连接池和缓存
    文章目录一、MyBatis简介二、连接池1.连接池的作用2.MyBatis中的连接池实现3.连接池的参数配置三、缓存1.缓存的作用2.MyBatis的一级缓存3.MyBatis的二级缓存4.缓存的刷新和清空四、总结在使用MyBatis进行Java应用开发时,连接池和缓存是两个非常重要......
  • MyBatis-Plus动态表名
    MyBatis-Plus动态表名一、早期方案1.1MyBatis-Plus版本1、添加MyBatis-Plus依赖<dependency>   <groupId>com.baomidou</groupId>   <artifactId>mybatis-plus-boot-starter</artifactId>   <version>3.5.1</version></dependency>......
  • Mybatis读取和存储json类型的数据
    目录一、测试使用JSONObject来获取json二、设置@TableName的autoResultMap为true,@TableField的typeHandler为JacksonTypeHandler.class三、设置xml当中的resultMap四、JacksonTypeHandler讲解五、新增假如是JSONObject异常问题六、遇到转义的问题不管数据库当中是以json还是longte......
  • super与final关键字
    在Java编程中,`super`关键字是一个非常重要的概念。它主要用于在子类中访问父类的成员,包括方法和变量。理解`super`关键字的使用场景和作用,对于编写继承关系复杂的代码非常有帮助。####1.`super`关键字的基本概念`super`关键字用于在子类中引用父类的成员。它可以用来调用父......
  • 滚雪球学MyBatis(12):常见问题与解决方案
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们已经进行了MyBatis的基础使用、进阶功能及项目实战的详细讲解。通过这些内容,相信大家对MyBatis有了全面的了解,并能够在实际项目中应用MyBatis。然而,在使用MyBatis的过程中,我们可能会遇到各种问题。本期内容中,我们将总结......
  • 滚雪球学MyBatis(13):总结与展望
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们从基础到进阶,详细讲解了MyBatis的各个方面,并通过项目实战帮助大家巩固所学知识。本期内容中,我们将对整个系列教程进行总结与回顾,并展望未来的学习方向。通过这一期的内容,希望大家能够全面回顾MyBatis的核心知识点,并了解......