mybatis_07动态SQL_foreach循环
废话不多说,直接上代码!
<select id="findUserByforeach" parameterType="userQueryVO" resultMap="userByresultmap">
select * from user
<where>
<!--
for(item:items){} foreach:表示一个foreach循环
collection:集合参数的名称,如果是直接传入集合参数,则该处只能写[list],相当于上面的items
item:相当于上面的item,元素名称id,每次遍历出来的id
open:开始遍历时拼接的串,
close:结束遍历时拼接的串
separator:遍历出每个对象需要拼接的字符
-->
<if test="ids!=null and ids.size()>0">
<foreach collection="ids" item="id" open="and id in(" close=")" separator=",">
${id}
</foreach>
</if>
</where>
</select>
包装类(供参考) userQueryVO:
package com.ahd.vo; import com.ahd.model.User;
import org.apache.logging.log4j.core.config.Order; import java.util.List; public class UserQueryVO {
private User user;
private Order order;
private List<Integer> ids; public List<Integer> getIds() {
return ids;
} public void setIds(List<Integer> ids) {
this.ids = ids;
} public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
} }
userQueryVO
传入参数是数组的情况
<!--java.util.list 别名list-->
<select id="findUserByforeach2" parameterType="list" resultMap="userByresultmap">
select * from user
<where>
<!--
for(item:items){} foreach:表示一个foreach循环
collection:集合参数的名称,如果是直接传入集合参数,则该处只能写[list],相当于上面的items
item:相当于上面的item,元素名称id,每次遍历出来的id
open:开始遍历时拼接的串,
close:结束遍历时拼接的串
separator:遍历出每个对象需要拼接的字符 -->
<if test="list!=null and list.size()>0">
<foreach collection="list" item="id" open="and id in(" close=")" separator=",">
${id}
</foreach>
</if>
</where>
</select>
mybatis_07动态SQL_foreach循环的更多相关文章
- 18Mybatis_动态sql_foreach
foreach: 向sql传递数组或List,mybatis使用foreach解析 应用场景: 在用户查询列表和查询总数的statement中增加多个id输入查询. sql语句如下: 两种方法: SE ...
- element-UI动态的循环生成Popover弹出框的方法
父组件:<div class="itemLi" :class="{gray: (salse.flashsaleStatus==3 || salse.flashsal ...
- ABAP 表格控制(Table Control)和步循环
表格控制(Table Control)和步循环 1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...
- DevExpress 中根据数据库字典动态生成卡式菜单 z
第三方的Devexpress套件因为要使用权限机制控制不同用户进入系统显示菜单所以要配合字典数据动态生成.在WEB中这种问题灰常的轻松在winform里就稍微有点不同为了用DEV实现卡式菜单有组的概念 ...
- Devexpress Ribbon 动态生成菜单
/// <summary> /// 动态加载菜单 /// </summary> private void GetMenuBind() { //根据登录用户角色菜单动态创建 // ...
- Mybatis动态SQL简单了解 Mybatis简介(四)
动态SQL概况 MyBatis 的强大特性之一便是它的动态 SQL 在Java开发中经常遇到条件判断,比如: if(x>0){ //执行一些逻辑........ } Mybatis应用中,S ...
- SpringBoot+Mybatis 实现动态数据源切换方案
背景 最近让我做一个大数据的系统,分析了一下,麻烦的地方就是多数据源切换抽取数据.考虑到可以跨服务器跨数据库抽数,再整理数据,就配置了这个动态数据源的解决方案.在此分享给大家. 实现方案 数据库配置文 ...
- Vector(动态数组)怎么用咧↓↓↓
定义方式:vector<int> a; //二维vector<int>a[100] 在末尾压入容器:a.push_back(x);//二维 a[i].push_back(x) ...
- SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案
背景 之前做数据抽取的时候,搭了一个mybatis动态数据源切换的架子.方便他们写抽取的代码.今天同事问我,架子里面的mybatisplus的IPage失效了是什么问题.想了一下,应该是写动态数据源的 ...
随机推荐
- Android基础知识学习
IPC (Inter-Process Communication) 意思是: 进程间的通信,是指两个进程之间进行数据交换的过程. Android中如何开启多进程呢? 只需要给四大组件(Activit ...
- python基础自学 第一天
python的概述 python的创始人:吉多·范罗苏姆 1991年,第一个python解释器诞生,用C语言实现,并能调用C语音的库文件 解释器(解释型语言和编 译型语言的区别) 把其他语言翻译成计算 ...
- weexpack打包weex项目运行/打包记录
构建weex项目 安装weex-toolkit cnpm install -g weex-toolkit 初始化一个项目只需新建文件夹并在目录下执行 weex init 即可 安装依赖:cnpm in ...
- 宝塔面板下安装zabbix
宝塔面板之前已经安装完成,如果不会可以查看上一个日志.接下来开始安装zabbix 1.添加系统用户和组 2. yum -y install epel-release #安装源 3.使用命令 yum - ...
- PHP删除当前目录及其目录下的所有文件
使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现. 用到的函数: scandir($path) 遍历一个目录下所有文件并返回数组. un ...
- IntelliJ IDEA 使用前常用设置
0.设置位置 以下设置基于IntelliJ IDEA 2018.3.2 版本. IDEA 的设置一般都在 File 下的 Settings... 里进行设置的. 1.设置字体字号行间距 2.设置背景图 ...
- OWIN 自托管静态网站
我们知道,借助OWIN,WebApi,SignalR,WCF 都可以创建自托管(Self-Host)实例,完全不需要IIS,静态网站也可以. 最近做一个服务器监控小工具,用 SignalR 通信,监控 ...
- FAIR开源Detectron:整合全部顶尖目标检测算法
昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标检测平台. 昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标 ...
- iOS----KVC和KVO 详解
一. KVC 1.KVC介绍 KVC 就是键值编码(key-value-coding). 2.KVC 的主要作用: (1)通过键值路径为对象的属性赋值.主要是可以为私有的属性赋值. AppleView ...
- android用OkHttp和okio包通信的坑--气死我了
今天新建了个项目,想要用用okhttp包来实现Android和tomcat的通信, 于是就根据记忆,把以前可以用的代码复制过来了,然后呢,出现这个.... 图有点大,不知到怎么调小 很莫名其妙,我看了 ...