mybatis-210721-05---动态sql-foreach遍历集合

08-Mybatis 动态sql查询 动态 SQL 是 MyBatis 的强大特性之一。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。MyBatis 动态 SQL 查询是一种可以根据不同的查询条件生成不同 SQL 语句的功能,方便实现灵活的查询操作。 阅读详情

mybatis-210721-05—动态sql-foreach遍历集合


	查询  id在集合中  的员工

EmployeeMapper.java

package com.bgy.mybatis.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bgy.mybatis.bean.Employee;

public interface EmployeeMapper {
	
	public List<Employee> getEmpsByConditionForeach(@Param("ids")List<Integer> ids);
}

EmployeeMapper.xml(笔记在这儿哦)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bgy.mybatis.dao.EmployeeMapper">
	
	<select id="getEmpsByConditionForeach" resultType="com.bgy.mybatis.bean.Employee">
		select
			*
		from 
			tbl_employee
		where 
			id in
		<foreach collection="ids" item="item_id" separator="," 
			open="(" close=")">
			#{item_id}
		</foreach>
		<!--
			collection:
				指定要遍历的集合
				list类型的参数会特殊处理封装在map中,map的key就叫list
			
			item:
				将当前遍历出的元素赋值给指定的变量
			
			separator:
				每个元素之间的分隔符
				
			open:
				遍历出所有结果拼接一个开始的字符( “( ” )
				
			close:
				遍历出所有结果拼接一个结束的字符( “ )” )
				
			index:
				索引。
				遍历list的时候,index就是索引值,item就是当前值
				遍历map的时候,index表示的是map的key,item就是map的值
			
			#{变量名}	取出变量的值,也就是当前遍历出的元素
		-->
		
	</select>
</mapper>

MybatisTest.java

package com.bgy.mybatis.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test;

import com.bgy.mybatis.bean.Employee;
import com.bgy.mybatis.dao.EmployeeMapper;

class MybatisTest {
	
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

	
	/**·
	 * 测试sql——foreach遍历集合
	 * @throws IOException
	 */
	@Test
	public void test() throws IOException{
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
			
			List<Employee> list = mapper.getEmpsByConditionForeach(Arrays.asList(1,2,3,4,5));
			
			System.out.println(list);
		} finally {
			sqlSession.close();
		}
	}
}
强化学习 之 Actor Critic 简介 Actor Critic是一种结合体算法: (1)Actor 的前生是 Policy Gradients,这能让它毫不费力地在连续动作中选取合适的动作,而 Q-learning 做这件事会瘫痪; (2)Critic 的前生是 Q-learning 或者其他的 以值为基础的学习法,能进行单步更新,而传统的 Policy Gradients 则是回合更新,这降低了学习效率。 算法思想 Actor... 阅读详情

相关推荐

rv1126平台spi屏调试

st7789v2 i2c调试

zuoanyouzhuan_的博客 2038

mybatis查询结果包含集合

只需要在 xml中,把返回结果单独定义即可。 本质上就是一个关联查询,相当于group by 分组了一下,字段相同的那个,被提取出来到外边的那个对象里了。 1.表说明 本案例,两张表,多对一,本次案例,一个学生有多个课程 学生表:a表:id,name 课程表:b表:id,name,sId(外键学生id) 2. xml写法说明 <!-- mapper接口对应的sql查询语句--> <select id="getPage" resultMap="hasCollection">

草叶儿的博客 3576

银河麒麟V10离线安装VLC播放器:依赖处理与3.0.9.2版本实操指南

在国产化操作系统日益普及的背景下,软件安装方式成为政企内网用户关注的重点。离线安装作为一种不依赖公网源的部署手段,常用于解决内网环境下的软件获取问题。其核心在于理解Linux包管理机制,如dpkg与apt对依赖关系的处理逻辑。掌握这一原理,不仅能应对多媒体软件的部署,也能提升系统维护效率。VLC作为跨平台多媒体播放器,凭借强大的解码能力与协议支持,广泛应用于本地视频播放、RTSP拉流及监控大屏等场景。本文从离线安装的通用概念出发,结合银河麒麟V10桌面版的实际环境,详细梳理了VLC 3.0.9.2离线包的获

weixin_32247165的博客 369

MyBatis中数组或集合的遍历

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,就能体会到根据不同条件拼接 SQL 语句的痛苦。在Java项目中,通过动态SQL批量查询数据是很常见的情形,作为传值的字段可以是一个数组或集合。可以将任何可迭代对象(如:List、Set 等)、Map 对象 或 数组对象 传递给 foreach 作为集合参数。

独码乐,不如众码乐,乐享其中 2748

Allegro 16.6 高级技巧实战:用Region规则和动态间距搞定高密度连接器布局布线

本文深入探讨了Allegro 16.6在高密度连接器布局布线中的高级技巧,重点介绍了Region规则和动态间距属性的应用。通过局部规则覆盖和分层控制,解决0.5mm以下引脚间距的布线难题,提升PCB设计效率和质量。

weixin_30352645的博客 439

从零部署DeepSeek V4 Flash:NVIDIA DGX Spark实战指南

GPU加速计算已成为现代人工智能基础设施的核心,其原理是通过并行处理架构大幅提升深度学习模型的训练与推理效率。在AI工程实践中,NVIDIA GPU凭借CUDA生态和专用驱动栈,为大规模语言模型部署提供了硬件基础。本文聚焦于企业级AI服务器部署场景,针对NVIDIA DGX Spark多节点系统的硬件初始化、驱动兼容性配置、容器化部署等关键环节,提供从系统层到应用层的完整解决方案。通过vLLM推理框架的实战配置,演示如何将DeepSeek V4 Flash模型高效部署于多GPU环境,涵盖Tensor Par

weixin_32296621的博客 379

[mybatis]动态sql_foreach_遍历集合&批量插入

foreach collection:指定要遍历的集合 list类型的参数会特殊处理封装在map中,map的key就叫list item:将当前遍历出的元素赋值给指定的变量 #{变量名}就能取出变量的值也就是当前遍历出的元素 separator:每个元素之间的分隔符 open:遍历出所有结果拼接一个开始的字符 close:遍历出所有结果拼接一个结束的字符 index:索引。遍历list的时候 index就是索引 遍历map的时候index表示的就是map的key,item就是

m0_51955470的博客 1544

AArch64 ARM64 寄存器介绍

除了上述通用寄存器,还有FPSR(浮点状态寄存器)和 FPCR(浮点控制寄存器)等。X29寄存器和X30寄存器在函数调用和堆栈帧的管理中扮演着关键角色。AArch64架构提供了31个通用寄存器,每个寄存器都可以用作64位X寄存器(X0~X30)或32位W寄存器(W0~W30)。使用X寄存器将导致64位的计算,使用W寄存器将导致32位的计算。EL0、EL1、EL2和EL3是AArch64架构中定义的四个特权级别(Exception Levels),用于支持不同的执行环境和特权级别。

lml435035844的博客 1万+

态 SQL 的另一个常见使用场景是对集合进行遍历

态 SQL 的另一个常见使用场景是对集合进行遍历

feidodoxcx的博客 782

YOLOv4目标检测算法——通俗易懂的解析

YOLOv4目标检测算法——通俗易懂的解析

chase 7135

YOLOv11的对比学习预训练改进-(通过SimCLR预训练增强特征提取)

本文介绍了将SimCLR对比学习预训练与YOLOv11目标检测模型相结合的创新方法。文章首先概述了目标检测领域的发展现状和YOLOv11的架构优化,包括主干网络、特征金字塔和检测头的改进设计。其次详细解析了SimCLR对比学习的核心原理,涵盖数据增强、投影头设计和NT-Xent损失函数。最后探讨了如何将对比学习与目标检测有效结合,通过特征空间对齐和渐进式微调策略提升模型性能。该方法显著增强了特征提取能力,提高了检测精度和训练效率,特别是在小目标和遮挡目标的检测上表现突出。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 685

Mybatis深入

1. Mybatis中集合操作 1.1 业务说明 需求 查询id号 1,2,4,5,7的数据 Sql: select * from demo_user where id in (1,2,4,5,7…) 1.1 array集合操作 1.1.1 编辑测试代码 /** * 业务: 查询id号 1,2,4,5,7的数据 */ @Test public void testFindIn(){ SqlSession sqlSession = sqlSessionFa

星是河的眼的博客 530

【Autoware】2小时安装Autoware1.13(保姆级教程)

Autoware是一款“一体化”开源自动驾驶软件,能实现感知、决策、控制等功能,通过在Ubuntu中搭建Autoware开发环境和案例的运行,使大家对自动驾驶技术的实现有一个更清晰的认识。

DevFrank的博客 1万+

Mybatis从入门到精通系列 08 —— 动态 SQL 语句

  Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。那么本文针对 Mybatis 动态 SQL 语句进行简单的操作。 文章目录一、动态 SQL 的 if 标签二、动态 SQL 的 where 标签三、动态 SQL 的 foreach 标签3.1 传入 List 集合3.2 传入包装类 QueryVo四、动态 SQL 的 bind 标签 一、动态 SQL 的 if 标签   我们根

秀岩的博客 616

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NO.07 MyBatis之动态Sql语句

Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,主要用于多条件查询,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题。NO.06 自定义映射resultMap_qq_46053741的博客-优快云博客。

qq_46053741的博客 335

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

动态SQL遍历与主键返回

在后端开发的实际场景中,我们常常会面临复杂的数据操作需求。例如,当新增一名员工后,紧接着需要使用该员工的ID去批量插入其工作经历;或者要一次性删除多个特定ID对应的部门数据。这些场景引出了两个关键技术点:如何在数据库插入记录后获取自动生成的主键,以及怎样通过遍历集合动态生成适用于批量操作的SQL语句。MyBatis作为一款流行的持久层框架,其提供的主键返回机制以及foreach标签,为解决这些问题提供了便捷而高效的方案。

2401_86968005的博客 806

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MyBatis中动态SQL

MyBatis是一个非常流行的ORM框架,它的特点是将SQL语句从Java代码中分离出来,从而使代码更具可读性、可维护性和可扩展性。在MyBatis中,我们可以使用动态SQL来动态生成SQL语句,以满足不同的需求。动态SQL是MyBatis中非常强大的特性之一,它使得我们可以根据不同的条件来生成不同的SQL语句。Foreach语句:用于循环处理集合或数组中的数据,可以动态生成多条SQL语句。Where语句:用于组合查询条件,只有当第一个条件成立时才会包含该语句片段。

qq_66874942的博客 631

遍历Map的四种方式与sql优化

Map遍历的四种方式 SQL语句的优化 Map遍历的四种方式 方法一 在for-each循环中使用entries来遍历。for-each用于java5之后 Map<Integer,Integer> map = new Map<Integer,Integer>();for(Map.Entry<Integer,Integer> entry:map) { entry.getKey(); /

2588

MyBatis操作数据库 -- 动态SQL

T04BF👋专栏:🫵 与天斗其乐无穷。

m0_60963435的博客 1326

mybatis动态sql对Map<String,List<String>>的遍历-原创

工作中需要查表,传来的参数是一个Map<String,List<String>>的参数,第一次对这样比较复杂的参数直接在mapping中进行条件遍历,查了一些帖子最终成功了,记录一下: <if test="example.industryAndStyleList != null and example.industryAndStyleList.size() > 0"> AND( <foreach collection="example.industryAn

qq_43538201的博客 3646

MyBatis中动态SQL使用 foreach 遍历集合

请注明出处:http://blog.youkuaiyun.com/qq_23179075/article/details/79164539 MyBatis中动态SQL使用 foreach 遍历集合 需求 : 根据 type 字段查询表中的数据 type 可以是: 0 , 1 , 2 几个值的所有组合, 也可以为空 MySQL: Mapper.xml select id="getDat

飞渡浮舟 3万+

MyBatis入门(四)动态SQL

一.

长夜漫漫,无心睡眠 1437

动态SQL-(Sql片段及Foreach遍历)

动态SQL-(Sql片段及Foreach遍历)

m0_74135466的博客 768

老司机学习MyBatis之动态SQL使用foreach遍历集合

一、前言foreach 就是遍历迭代,在SQL中通常用在 in 这个关键词的后面。foreach元素的属性主要有 item,index,collection,open,separator,close这6种&lt;foreach collection="" close="" index="" item="" open="" separator=""&gt; .... &am

Java小蚂蚁 2572

简明Mybatis教程之动态SQL-foreach(遍历集合、批量插入)

    批量插入数据到数据库在开发时用到的频率非常高,为了节省时间,提高效率,我们不可能逐条插入数据;因此mybatis为开发人员提供了foreach标签。foreach标签解释:collection="":指明要遍历的集合;                              item="":将当前遍历出的元素赋值给指定变量;                              se...

xiao_more的博客 3757

Mybatis 动态 SQL 对一个集合进行遍历foreach的使用

http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。 foreach元素的属性主要有 item,index,collection,open,separator,close。 item表示集合中每一个元素进行迭代时的别名, index指定一个名字...

分享我的点点滴滴,在成长路上与你同行! 1915
上一篇: mybatis-210721-04---动态sql-set与if结合的动态更新
下一篇: mybatis-210721-06---动态sql-foreach批量插入
白光一
博客等级 码龄9年 0粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值