<iterate>标签,顾名思义是用来遍历标签用的。

支持的属性如下:

属性 说明 是否必选
open 遍历后生成的这些sql,开始的第一个符号 可选
close 遍历后生成的这些sql,最后一个符号 可选
prepend 添加在open指定的符号前面 可选
property 被遍历的属性(往往是一个集合) 可选
conjunction 遍历后每一条sql之间的间隔 可选

各个击破,没有什么比例子最直接的了。

1. open 和close

insert into table (id,name) values<iterate open="(" close=")">   #ID#,#Name#</iterate>

不用考虑该语句的合理性,只是为了解释这两个属性随便写的,最终生成的SQL如下:

insert into table (id,name) values ('123','wh');

其中红色的两个括号,就是通过open 和close指定的。

2.conjunction-用于分割各个语句

select * from user where id in (
<iterate conjunction=",">
    #id#
</iterate>)

生成的SQL如下:

select * from user where id in (1,2,3,4,5);

其中红色的逗号  ,  就是通过conjunction指定的。

3. prepend-追加到最前面的内容

select * from user

<iterate prepend="WHERE" conjunction="AND">
  id=#id#
</iterate>

该语句更没啥价值,只为了说明该属性,生成SQL如下:

select * from user where id='1' and id='2' and id='3'

其中prepend指定的where会被添加在<iterate>标签的最前面,conjunction作为间隔符被添加在每一条语句中间。

4.property-官教说该变量是必须的,其实并不是必须的

如果有这么一个类定义:public class Dept{
   public string ID{get;set;}
   public List<User> Users{get;set;}
}

public class User{   public string ID{get;set;}   punlic string Name{get;set;}}
对应的sqlmp如下(property必须的情况):
<insert id="insert_u" parameterClass="Dept"> //指定parameterClass是Dept
  insert into user (id,name) values
    <iterate property="Users" conjunction=","> //设置property=Users,意思是要遍历的是Dept.Users属性
        (#Users[].ID#,#Users[].Name#) //因为Users是一个集合,所以写法要求Users[]的方式访问
    </iterate>
</insert>

//调用mapper.insert("isert_u",dept)

输出的SQL如下:

insert into user (id,name) values

('1','name1'),

('2','name2')

对应的sqlmp如下(property非必须的情况):
<insert id="insert_u" parameterClass="list"> //指定parameterClass是list,是一个集合
  insert into user (id,name) values
    <iterate conjunction=","> //不需要设置property,因为我们直接访问整个集合,而不是集合的某个属性
        (#[].ID#,#[].Name#) //因为本身是一个集合,所以写法要求[]的方式访问即可
    </iterate>
</insert>
//调用mapper.insert("isert_u",userList);

iBatisNet 中 iterate标签的使用的更多相关文章

  1. Html中<font>标签的使用

    Html中<font>标签的使用 <!doctype html> <html lang="en"> <head> <meta ...

  2. jsp2.0+中的标签文件,JSP Fragment技术

    刚进新公司不久,今天在看到项目中用到了.tag文件.刚开始我还以为这个是第三方类似freemarker的模板技术.问了下项目组的其他人员,原来这是jsp2.0以来就有的JSP Fragment技术.以 ...

  3. Html中<a>标签的样式的设置

    html中<a>标签的样式的设置.. ------------------------ <html> <head> <title>这是网页选项卡的名称& ...

  4. 禁止手机页面中A标签长按弹出路径框

    //禁止手机页面中A标签长按弹出路径框    window.onload=function(){        document.documentElement.style.webkitTouchCa ...

  5. JSP中<img>标签引用本地图片

    问题描述: jsp页面中<img>标签如何读取本地文件夹中的图片. 问题起因: 由于上传图片至本地文件夹中,图片路径为: D:/upload/file/image/img.jpg 所以将这 ...

  6. HTML中<meta>标签如何正确使用

    HTML中<meta>标签如何正确使用 如果我们在浏览器中按下F12或者Ctrl+shift+J,便可以打开开发者工具,在element中即可看到<head>元素中有不少< ...

  7. Jquery获取iframe子/父窗口中的标签

    获取子窗口中的标签: $("#id",document.frames('iframename').document); 获取父窗口中的标签: $('#id', parent.doc ...

  8. 在php中,如何将一个页面中的标签,替换为用户想输出的内容

    前言:釜山行,暴露人性, ———————————————————————————————————————————————————————————————————————————— 今天说一个最简单的例 ...

  9. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

随机推荐

  1. 小强的HTML5移动开发之路(33)—— jqMobi基础

    一.什么是jqMobi jqMobi是由appMobi针对HTML5浏览器和移动设备开发的javascript框架,是个极快速的查询选择库,支持W3C查询. 版本 jqMobi源码最初在2012年1月 ...

  2. BZOJ 1090 - 区间dp

    Magic Door 题目大意: 给一个字符串,可以将重复的串缩成x(a),表示x个a,求能缩成的最小长度. 题目分析 区间dp: dp[i][j]表示i~j处理后的最小长度, 则有 \[dp[i][ ...

  3. 子查询及exists

    子查询分为无关子查询和相关子查询 无关子查询,只查询一次,与外查询无关,可作为查询条件: select * from student where sno in (select sno from stu ...

  4. Java对象基础的一些小问题

    1 权限修饰符public protected private default..访问权限修饰符   public protected default private 同类 T T T T 同包 T ...

  5. JavaScript实现简单图片滚动 --9张图告诉你,C罗欲哭无泪

    源代码下载:http://download.csdn.net/detail/u011043843/7510425 昨晚德国和葡萄牙的焦点之战你看了吗?北京时间凌晨的比赛中.C罗领衔的葡萄牙0-4德国被 ...

  6. 关于HierarchyViewer的使用

    在学习ViewGroup和Layout时我们可能会有一个疑问,如果我在Xml布局文件中不放置Layout,直接放TextView等组件的时候,它是用什么方式布局的?还有要学习别人优秀的布局怎么办? H ...

  7. 【MySQL案例】error.log的Warning:If a crash happens thisconfiguration does not guarantee that the relay lo

    1.1.1. If a crash happens thisconfiguration does not guarantee that the relay log info will be consi ...

  8. 说下IEnumerable相关的

    IEnumerable 我们每天都在使用foreach进行遍历,今天讨论下面三个常见的问题: 为什么在foreach中不能修改item的值 要实现foreach需要满足什么条件 为什么Linq to ...

  9. 学好Java只需要做到这7点,年薪20W起步

    大道至简,所以扎实有用的方法,其实都是很简单的,难在踏踏实实的执行过程.今天为大家介绍的就是Java学习的7个看起来非常简单的方法,快学起来吧. 为什么要学习java? Java是目前最流行的编程语言 ...

  10. UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项

    原文 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 在 Windows 10 的前几个版本中将页面内容扩展到标题栏上还算简单,主要是没什么坑.直到一些新控件的引入和一些外观设计趋势变化之后 ...