mybatis-MyBatis中collection标签的含义是什么

问题描述

MyBatis中collection标签的含义是什么

解决方案

可以简单理解成是可以放很多条记录的一个容器,比较典型应用就是主表和子表

解决方案二:
参考:http://blog.csdn.net/andylauxing/article/details/9465835

解决方案三:
参考:http://blog.csdn.net/mamba10/article/details/20927225

解决方案四:
collection在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有以下3种情况:
如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key

解决方案五:
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况:

  1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
  2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
  3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在breast里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key

参考
http://blog.sina.com.cn/s/blog_6a0cd5e501011snl.html

时间: 2024-09-19 08:18:14

mybatis-MyBatis中collection标签的含义是什么的相关文章

MyBatis使用动态SQL标签的小陷阱_java

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 现在MyBatis越来越受大家的喜爱了,它的优势大家都知道,我就不多说了,直接说重点. MyBatis中提供动态SQL功能,我们可以使用<if><when&

mybatis 逆向工程-大神指教mybatis逆向工程中 一对一,一对多关系如何生成

问题描述 大神指教mybatis逆向工程中 一对一,一对多关系如何生成 mybatis逆向工程中 一对一,一对多关系可以生成吗?如何.求教 解决方案 hibernate可以映射关系,mybatis中你在这个表要用到另一个表的数据,就是在这个表的实体在添加另一个表你要用的实体上去

maven+springmvc+spring+mybatis开发中,classpath突然失效

问题描述 maven+springmvc+spring+mybatis开发中,classpath突然失效 maven+springmvc+spring+mybatis开发中,一直非常顺利的开发,不知道为什么, classpath突然失效,spring的applicationcontext文件都无法加载了.各位前辈,请给小弟解惑啊. 解决方案 有可能eclipse打开的时候异常,没有正确加载相关的类库.jar包.clean一下项目,关闭重新打开试试. 解决方案二: eclipse 有时候是会异常,

整理Java的MyBatis框架中一些重要的功能及基本使用示例_java

基本用法回顾:SQL语句存储在XML文件或Java 注解中.一个MaBatis映射的示例(其中用到了Java接口和MyBatis注解): package org.mybatis.example; public interface BlogMapper { @Select("select * from Blog where id = #{id}") Blog selectBlog(int id); } 执行的示例: BlogMapper mapper = session.getMappe

Java的MyBatis框架中XML映射缓存的使用教程_java

MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.默认情况下是没有开启缓存的,要开启二级缓存,你需要在你的SQL映射文件中添加一行: <cache/> 字面上看就是这样.这个简单语句的效果如下: 1.映射语句文件中的所有select语句将会被缓存. 2.映射语句文件中的所有insert,update和delete语句会刷新缓存. 3.缓存会使用Least Recently Used(LRU,最近最少使用的)算法来收回. 4.根据时间表(比如 no Flush Inter

MyBatis的 config.xml标签_java

<?xml version="1.0" encoding="UTF-8" ?> <configuration><!-- 配置 --> <!-- <properties resource="XXXXXX.properties" /> 或者使用properties配置文件 读取顺序优先级次之 读取顺序参数传递优先级最低 --> <properties><!-- 属性 --&

JSP中param标签用法实例分析_JSP编程

本文实例分析了JSP中param标签用法.分享给大家供大家参考,具体如下: Jsp中param标签的使用 <jsp:param>操作被用来以"名-值"对的形式为其他标签提供附加信息.它和<jsp:include>.<jsp:forward>.<jsp:plugin>一起使用,方法如下: 复制代码 代码如下: <jsp:param name="paramName" value="paramValue&qu

Docker中latest标签引发的困惑

本文讲的是Docker中latest标签引发的困惑,[编者的话]本文介绍了Docker中的一个小知识:latest标签,由于它的字面意思是"最新的",所以很多时候也容易被误解,其实latest就是个普通标签,不要期望它是最新或最稳定的版本.它只是个名字,没有其它附加作用,更不会自动更新.:) 在Docker中,最容易产生误解的部分应该是latest这个标签.困惑主要是由于这个名字造成的,因为字面意思并不能表达它的真正含义.在本文中,我们来学习下latest标签的真正作用和如何正确使用它

Docker 中 latest 标签引发的困惑

Docker 中 latest 标签引发的困惑 [编者的话]本文介绍了Docker中的一个小知识:latest标签,由于它的字面意思是"最新的",所以很多时候也容易被误解,其实latest就是个普通标签,不要期望它是最新或最稳定的版本.它只是个名字,没有其它附加作用,更不会自动更新.:) 在Docker中,最容易产生误解的部分应该是latest这个标签.困惑主要是由于这个名字造成的,因为字面意思并不能表达它的真正含义.在本文中,我们来学习下latest标签的真正作用和如何正确使用它.