您的位置:首页 > 其它

ibatis in语句参数传入方法

2014-05-06 15:01 357 查看
第一种:传入参数仅有数组

<select id="GetEmailList_Test" resultClass="EmailInfo_">

select *

from MailInfo with (nolock)

where ID in

<iterate open="(" close=")" conjunction="," >

#[]#

</iterate>

</select>

调用

string[] strValue = new string[] { "1", "2", "3" };

Reader.QueryForList<EmailInfoModel>("WebApp_Ibatisnet.dao.GetEmailList_Test", strValue );

第二种:传入参数有数组,且有其他数据

<select id="GetEmailList_Test3" parameterClass="TestIn" resultClass="EmailInfo_">

select top(#Count#)*

from MailInfo with (nolock)

where ID in

<iterate open="(" close=")" conjunction="," property="ArrValue" >

#ArrValue[]#

</iterate>

</select>

调用

TestIn ti = new TestIn();

ti.Count = 1;

ti.ArrValue = strValue;

return Reader.QueryForList<EmailInfoModel>("WebApp_Ibatisnet.dao.GetEmailList_Test3", ti);

实体类:

public class TestIn

{

private int count;

public int Count

{

get { return count; }

set { count = value; }

}

private string[] arrValue;

public string[] ArrValue

{

get { return arrValue; }

set { arrValue = value; }

}

}

第三种:in后面的数据确定,使用string传入

<select id="GetEmailList_Test2" parameterClass="TestIn" resultClass="EmailInfo_">

select *

from MailInfo with (nolock)

where ID in

($StrValue$)

</select>

调用

Reader.QueryForList<EmailInfoModel>("WebApp_Ibatisnet.dao.GetEmailList_Test2", "1,2,3");

其他信息:

Iterate的属性:

prepend -可被覆盖的SQL语句组成部分,添加在语句的前面(可选)

property -类型为java.util.List的用于遍历的元素(必选)

open -整个遍历内容体开始的字符串,用于定义括号(可选)

close -整个遍历内容体结束的字符串,用于定义括号(可选)

conjunction -每次遍历内容之间的字符串,用于定义AND或OR(可选)

<iterate>遍历类型为java.util.List的元素。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: