首页 > 编程语言 >JAVA:mapper.java和mapper.xml的关系,以及foreach的用法

JAVA:mapper.java和mapper.xml的关系,以及foreach的用法

时间:2023-12-11 17:44:06浏览次数:32  
标签:xml mapper JAVA List Param status foreach java

简单理解就是,java声明了方法,xml实现了方法,类似与接口与实现接口,他们之间的关系如下:

//	Mapper.java中
List<Ranks> inquireOnlyName(
            @Param("names") List<String> names,
            @Param("status") String status,
            @Param("startIndex") int startIndex,
            @Param("pageSize") int pageSize,
            @Param("namesLength") int namesLength
    );
<!--Mapper.xml中-->
<select id="inquireOnlyName" resultType="maple.morning.yystools.entity.Ranks">
        SELECT *
        FROM ranks
        WHERE (CASE WHEN ranks_1 IN
	<foreach collection="names" index="index" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
	THEN 1 ELSE 0 END
	+ CASE WHEN ranks_2 IN
	<foreach collection="names" index="index" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
	THEN 1 ELSE 0 END
                  ) >= #{namesLength}

	AND status IN ${status}
	ORDER BY verify_time DESC
	LIMIT #{startIndex}, #{pageSize}
</select>

java中的方法名,对应xml中id的值
java中的返回属性,对应xml中resultType的值
此处需要返回原始的类,而不是包装类,例如List<>是包装类,而Ranks才是需要被返回的类,因此在xml中要返回原始的类!

参数:

status,startIndex,pageSize,namesLength这四个参数JAVA和xml是一一对应的
然后是names是一个List<String>,我们想把他作为in的条件参数,因此我们就要用到foreach

foreach:

collection:对应java传递的参数,也就是names(网上很多人都说什么List就要传递list,Array传递array什么的可能是我版本比较新哈,collection只能赋值java传递的参数才能运行)

index:索引,选填

item:每个元素取出来的值赋值给谁,这里我们用name接收每一个元素的值,然后放到#{name}

open和separator和close=:我们直接上例子

标签:xml,mapper,JAVA,List,Param,status,foreach,java
From: https://www.cnblogs.com/MorningMaple/p/17894849.html

相关文章

  • java高精度定位系统源码,人员定位,物资定位
    高精度定位系统源码,前端框架:Vue  后端框架:Springboot超宽带(UltraWide-Band,UWB)是一种新型的无线通信技术,根据通信委员会的规范,UWB的工作频带为3.1~10.6GHz,系统-10dB带宽与系统中心频率之比大于20%或系统带宽至少为500MHz。UWB信号的发生可通过发射时间极短(如2ns)的窄脉冲(如二次......
  • java内部类
    一、内部类概述示例: 二、成员内部类 三、局部内部类  四、匿名内部类 示例:  五、匿名内部类在开发中的使用 ......
  • java循环结构
    java中的循环结构:while循环inti=1;while(i<=5){System.out.println("第"+i+"次打印");i++;} do-while循环do{System.out.println("打印do");}while(false); for循环适用于执行次数确定的循环。for(intb=1;b<=5;b+=2){System.......
  • 【Java集合】双列集合HashMap的概念、特点及使用
    上篇文章讲了Map接口的概念,通过他提供的接口方法,我们学习了如何使用以及对Map集合的遍历HashMap概念HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的。特点HashMap底层是由哈希表结构组成的,其实就是“数组......
  • java接口
    一、概述 二、接口特点三、接口的成员特点 四、类和接口的关系五、抽象类和接口的关系示例: ......
  • 七,JAVA面向对象
    对象用类来描述对象,将对象的共同特征进行抽取而形成类大象:类属性:鼻子眼睛:变量行为:跑,拔树:函数同一个类中。成员函数可以直接访问其他成员类与类之间的访问:需要创建对象格式:类名对象名=new类名();Carcar=newCar();//对象名.成员名car.run();c......
  • java多态
    一、概述 示例: 二、多态种成员的访问特点 三、多态的优缺点 四、多态种的转型 示例: ......
  • java抽象类
    一、概述二、抽象类的特点  示例: 三、抽象类的成员特点 ......
  • 对virsh dumpxml 文件的解释
    <name>Centos</name><uuid>dc502a07-6a66-0472-45b2-0afc2b7a8237</uuid><memoryunit='KiB'>16580608</memory><currentMemoryunit='KiB'>16580608</currentMemory><vcpuplacement=&#......
  • java中的数据库连接池
    常见的连接池的优缺点:HikariCP优点:性能出色,尤其在高并发负载下表现良好内存消耗低,占用系统资源较少具有自动化的连接池维护和统计功能缺点:需要JDK7或以上版本支持配置选项相对较少,有些高级的配置需要通过代码实现Tomcat连接池优点:支持负载均衡和Failover,......