`

mybatis标签收集

阅读更多
今天又在项目中看到了一个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,并使用到项目中,包括搜集的很多资料;很全很全:并且有项目实例 例如:mybatis中的#和$的区别? 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user...

    mybatis和spring整合jar包

    3. **Spring的Mapper扫描器**:通过使用`&lt;mybatis:scan&gt;`标签,Spring可以自动发现并管理所有的Mapper接口。 4. **事务管理**:Spring可以管理MyBatis的事务,通过配置事务管理器(如DataSourceTransactionManager...

    mybatis jar包

    开发者无需从多个来源收集MyBatis的依赖,只需下载这个jar包,就可以快速地在项目中引入MyBatis,从而实现与数据库的交互。 标签"jar包mybatis"进一步明确了这个文件是与MyBatis相关的Java库文件。 在压缩包子文件...

    redis+mybatis+RSA+DES+登陆授权.zip

    结合描述和标签,这个压缩包可能包含一个示例项目,展示了如何在Web应用中整合这些技术,实现用户登录授权,并利用Redis缓存、MyBatis进行数据持久化,同时使用RSA和DES进行数据加密,确保信息安全。文件名“app-...

    mybatis+Spring所需要的jar

    标签中的"jar"代表Java档案文件,"java"指的是Java编程语言,"整合框架"指的是MyBatis和Spring的结合,"lib"是库或者类库的简称,"mybatis"和"Spring"则是这两个框架的名字。这些标签清晰地表明了压缩包内容的性质和...

    Spring+MyBatis+logging+jstl所有jar包

    它可以帮助开发者调试问题、监控性能或者收集运行日志。在Java中,通常使用如Log4j、SLF4J或Java内置的日志API。虽然描述中没有具体提到哪个日志框架,但可以假设这里包含的是与Spring和MyBatis兼容的日志实现,例如...

    SpringMVC+Mybatis所需jar包

    3. jstl:JavaServer Pages Standard Tag Library,JSP标准标签库,包含了一系列预定义的标签,如条件判断、迭代等,简化了JSP页面的编写。 4. commons-fileupload:Apache Commons FileUpload库,用于处理HTTP请求...

    mybatis的jar包

    在Java开发中,jar(Java Archive)文件是一种归档格式,用于收集多个类文件和其他资源,形成一个单一的文件,便于分发和使用。MyBatis的jar文件通常包含了框架的核心组件,包括SqlSessionFactory、SqlSession、...

    Java后端资料,MyBatis面试专题

    5. **MyBatis动态SQL**:动态SQL是MyBatis的一大特色,通过XML标签(如if、choose、when、otherwise等)实现条件判断和SQL拼接。执行时,MyBatis会解析OGNL表达式,根据表达式值动态生成SQL。 6. **#{}与${}的区别*...

    spring动态数据源+mybatis分库分表

    MyBatis的`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签可以用来根据条件生成不同的SQL,适应不同分片策略。 3. **分库分表策略**:常见的分库分表策略有哈希分片、范围分片、时间戳分片等。哈希分片通过计算对象的哈希值...

    mybatis使用annotation在mysql,oracle上进行批量处理

    注意,这些注解支持动态SQL,可以使用`&lt;foreach&gt;`标签来遍历参数集合,实现批量操作。 ```java public interface BatchMapper { @Insert("&lt;script&gt;" + "INSERT INTO table_name (column1, column2) " + ";'&gt;" +...

    mybatis教程之动态sql语句[收集].pdf

    MyBatis 的 `&lt;selectKey&gt;` 标签就为此目的设计,它可以在插入语句之前或之后执行,用来获取新生成的主键。 以下是对 `&lt;selectKey&gt;` 标签的详细解释: 1. **keyProperty**:这个属性用于指定生成的主键应该设置到...

    基于springboot+mybatis开发的合同管理系统源码.zip

    【标签】Spring Boot、MyBatis Spring Boot核心知识点: 1. 自动配置:Spring Boot通过 starter 包自动配置相关的Bean,简化了传统Spring应用的配置工作。 2. 内嵌式Web服务器:内建了Tomcat或Jetty等Web服务器,...

    基于Springboot+myBatis的记账系统源码.rar

    标题 "基于Springboot+myBatis的记账系统源码.rar" 描述了一款使用Spring Boot框架和MyBatis持久层技术开发的记账系统。这个系统具备用户管理、分类管理、记账功能以及数据可视化统计展示。让我们深入探讨这些知识点...

    应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

    6. **Logstash**:Logstash是一个开源的数据收集和处理工具,用于从各种数据源收集数据,转换数据,并将其发送到“存储”(如Elasticsearch)。在本场景中,Logstash可能用于从MySQL数据库中抽取数据并推送到Elastic...

    大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程

    - 监控与日志收集:Prometheus/Grafana/ELK等。 5. **性能优化**: - 代码层面:避免N+1查询、减少IO操作等。 - 架构层面:采用缓存、负载均衡等技术手段。 - 硬件层面:增加服务器数量、升级硬件配置等。 ...

    基于SpringBoot+MyBatis的个人博客系统.zip

    3. **分类和标签**:文章可以按照不同的分类和标签进行组织,便于用户浏览和搜索。 4. **评论系统**:允许用户对文章进行评论,可能有评论回复和点赞功能。 5. **权限控制**:如管理员可以管理用户和文章,普通用户...

    mybatisDemo:mybatisDemo

    这个项目不仅包含了从网上收集的示例代码,还包含了作者自己进行的部分修改和优化,旨在提供一个学习和实践的平台。 【描述】"主要是一些框架的集合,都源自网络资源并经过个人改造":这句话表明该项目是一个综合性...

    毕业设计--基于SpringBoot+Mybatis的人力资源管理系统.zip

    【标签】:无 【文件名称列表】:2023_java 在此次毕业设计中,开发了一个基于SpringBoot和Mybatis的全面的人力资源管理系统。SpringBoot作为微服务框架,简化了Spring应用的初始搭建以及开发过程,而Mybatis作为...

    test-mybatis-04.rar

    5. **监控和日志**:配置日志框架(如Logback或Log4j)以收集和查看应用日志,同时可以使用像Prometheus和Grafana这样的工具来监控应用性能。 【标签】"Java"表明这个项目是使用Java编程语言编写的。Java是一种广泛...

Global site tag (gtag.js) - Google Analytics