分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

iBatisNet 中 iterate标签的使用

发布时间:2023-09-06 01:17责任编辑:彭小芳关键词:暂无标签

<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标签的使用

原文地址:http://www.cnblogs.com/wangdy/p/7655423.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved