今天又在项目中看到了一个mybatis的标签,那就是<foreach>,后来百度了下,发现了解释是如下的:
在mybatis的mapper配置文件中,可以利用<foreach>标签实现sql条件的循环,可完成类似批量的sql
mybatis接受的参数分为:(1)基本类型(2)对象(3)List(4)数组(5)Map
无论传哪种参数给mybatis,他都会将参数放在一个Map中:
如果传入基本类型:变量名作为key,变量值作为value 此时生成的map只有一个元素。
如果传入对象: 对象的属性名作为key,属性值作为value,
如果传入List: "list"作为key,这个List是value (这类参数可以迭代,利用<foreach>标签实现循环)
如果传入数组: "array"作为key,数组作为value(同上)
如果传入Map: 键值不变。
<foreach>标签的用法:
六个参数:
collection:要循环的集合
index:循环索引(不知道啥用。。)
item:集合中的一个元素(item和collection,按foreach循环理解)
open:以什么开始
close:以什么结束
separator:循环内容之间以什么分隔
例子:
<insert id="deleteGroups" parameterType="map" >
delete from t_group t where t.id in
<foreach item="items" index="index" collection="list" open="(" separator="," close=")">
#{items}
</foreach>
</insert>
这个例子是引用的网上的:
<update id="pubS" parameterType="Map">
UPDATE BMC_SUBPLATE
SET PLSTATUS = '02'
WHERE
<foreach collection="ids" item="plid" open="" close="" separator="OR">
PLID = #{plid}
</foreach>
</update>
collection的值其实就是mybatis把参数转化成Map以后,这个Map的key,但是这个key对应的value必须是一个集合, 可以是数组,也可以是List
生成的动态sql:
Executing: UPDATE BMC_SUBPLATE SET PLSTATUS = '02' WHERE PLID = ? OR PLID = ?
Parameters: 20121116144947537692(String), 20121116141301414855(String)
参考地址:
http://blog.csdn.net/gchonghavefun/article/details/8214223
分享到:
相关推荐
以最短的时间学会Mybatis,并使用到项目中,包括搜集的很多资料;很全很全:并且有项目实例 例如:mybatis中的#和$的区别? 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user...
3. **Spring的Mapper扫描器**:通过使用`<mybatis:scan>`标签,Spring可以自动发现并管理所有的Mapper接口。 4. **事务管理**:Spring可以管理MyBatis的事务,通过配置事务管理器(如DataSourceTransactionManager...
开发者无需从多个来源收集MyBatis的依赖,只需下载这个jar包,就可以快速地在项目中引入MyBatis,从而实现与数据库的交互。 标签"jar包mybatis"进一步明确了这个文件是与MyBatis相关的Java库文件。 在压缩包子文件...
结合描述和标签,这个压缩包可能包含一个示例项目,展示了如何在Web应用中整合这些技术,实现用户登录授权,并利用Redis缓存、MyBatis进行数据持久化,同时使用RSA和DES进行数据加密,确保信息安全。文件名“app-...
标签中的"jar"代表Java档案文件,"java"指的是Java编程语言,"整合框架"指的是MyBatis和Spring的结合,"lib"是库或者类库的简称,"mybatis"和"Spring"则是这两个框架的名字。这些标签清晰地表明了压缩包内容的性质和...
它可以帮助开发者调试问题、监控性能或者收集运行日志。在Java中,通常使用如Log4j、SLF4J或Java内置的日志API。虽然描述中没有具体提到哪个日志框架,但可以假设这里包含的是与Spring和MyBatis兼容的日志实现,例如...
3. jstl:JavaServer Pages Standard Tag Library,JSP标准标签库,包含了一系列预定义的标签,如条件判断、迭代等,简化了JSP页面的编写。 4. commons-fileupload:Apache Commons FileUpload库,用于处理HTTP请求...
在Java开发中,jar(Java Archive)文件是一种归档格式,用于收集多个类文件和其他资源,形成一个单一的文件,便于分发和使用。MyBatis的jar文件通常包含了框架的核心组件,包括SqlSessionFactory、SqlSession、...
5. **MyBatis动态SQL**:动态SQL是MyBatis的一大特色,通过XML标签(如if、choose、when、otherwise等)实现条件判断和SQL拼接。执行时,MyBatis会解析OGNL表达式,根据表达式值动态生成SQL。 6. **#{}与${}的区别*...
MyBatis的`<if>`、`<choose>`、`<when>`等标签可以用来根据条件生成不同的SQL,适应不同分片策略。 3. **分库分表策略**:常见的分库分表策略有哈希分片、范围分片、时间戳分片等。哈希分片通过计算对象的哈希值...
注意,这些注解支持动态SQL,可以使用`<foreach>`标签来遍历参数集合,实现批量操作。 ```java public interface BatchMapper { @Insert("<script>" + "INSERT INTO table_name (column1, column2) " + ";'>" +...
MyBatis 的 `<selectKey>` 标签就为此目的设计,它可以在插入语句之前或之后执行,用来获取新生成的主键。 以下是对 `<selectKey>` 标签的详细解释: 1. **keyProperty**:这个属性用于指定生成的主键应该设置到...
【标签】Spring Boot、MyBatis Spring Boot核心知识点: 1. 自动配置:Spring Boot通过 starter 包自动配置相关的Bean,简化了传统Spring应用的配置工作。 2. 内嵌式Web服务器:内建了Tomcat或Jetty等Web服务器,...
标题 "基于Springboot+myBatis的记账系统源码.rar" 描述了一款使用Spring Boot框架和MyBatis持久层技术开发的记账系统。这个系统具备用户管理、分类管理、记账功能以及数据可视化统计展示。让我们深入探讨这些知识点...
6. **Logstash**:Logstash是一个开源的数据收集和处理工具,用于从各种数据源收集数据,转换数据,并将其发送到“存储”(如Elasticsearch)。在本场景中,Logstash可能用于从MySQL数据库中抽取数据并推送到Elastic...
- 监控与日志收集:Prometheus/Grafana/ELK等。 5. **性能优化**: - 代码层面:避免N+1查询、减少IO操作等。 - 架构层面:采用缓存、负载均衡等技术手段。 - 硬件层面:增加服务器数量、升级硬件配置等。 ...
3. **分类和标签**:文章可以按照不同的分类和标签进行组织,便于用户浏览和搜索。 4. **评论系统**:允许用户对文章进行评论,可能有评论回复和点赞功能。 5. **权限控制**:如管理员可以管理用户和文章,普通用户...
这个项目不仅包含了从网上收集的示例代码,还包含了作者自己进行的部分修改和优化,旨在提供一个学习和实践的平台。 【描述】"主要是一些框架的集合,都源自网络资源并经过个人改造":这句话表明该项目是一个综合性...
【标签】:无 【文件名称列表】:2023_java 在此次毕业设计中,开发了一个基于SpringBoot和Mybatis的全面的人力资源管理系统。SpringBoot作为微服务框架,简化了Spring应用的初始搭建以及开发过程,而Mybatis作为...
5. **监控和日志**:配置日志框架(如Logback或Log4j)以收集和查看应用日志,同时可以使用像Prometheus和Grafana这样的工具来监控应用性能。 【标签】"Java"表明这个项目是使用Java编程语言编写的。Java是一种广泛...