ibatis in語句引數傳入方法
第一種:傳入引數僅有陣列
<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的元素。
<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的元素。
相關文章
- ibatis列印sql語句BATSQL
- 形似賦值語句的引數賦值
- Linux下邏輯測試語句引數和流程控制語句 if語句Linux
- linux if語句內判斷引數Linux
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- mybatis 傳入多個引數MyBatis
- MyBatis傳入多個引數MyBatis
- gdb除錯傳入引數除錯
- Java入門第12天 (方法過載 ,方法的引數傳遞)Java
- 【PL/SQL】使用變數傳遞方法生成表更名的SQL語句SQL變數
- 使用java模擬scala函數語言程式設計將函式作為引數傳入方法中Java函數程式設計函式
- Java方法04:命令列傳遞引數、可變引數Java命令列
- golang 方法作為引數傳遞Golang
- Mybatis傳入引數為List物件MyBatis物件
- 把介面當作引數傳入
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- JS的方法引數傳遞(按值傳遞)JS
- mybatis 的傳入引數如何既有物件又有單個引數MyBatis物件
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- Go語言引數傳遞是傳值還是傳引用Go
- Java中方法引數傳遞詳析Java
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean
- Jmeter使用_time函式實現同一個介面引數傳入可以每次傳入不同的引數JMeter函式
- GO語言————6.3 傳遞變長引數Go
- 淺析MySQL語句優化中的explain引數MySql優化AI
- 方法(函式)中傳入的引數有新的記憶體地址函式記憶體
- php函式引用傳遞引數的方法PHP函式
- 向路由元件傳遞引數2種方法路由元件
- GridView傳遞兩個引數的方法View
- Mybatis parameterType 傳入多個引數的使用MyBatis
- MyBatis中傳入引數為List集合的MyBatis
- Main函式引數argc,argv如何傳入AI函式GC
- MyBatis傳入多個引數的問題MyBatis
- Oracle遊標型別作為傳入傳出引數Oracle型別
- go語言引數傳遞到底是傳值還是傳引用Go
- 查詢資料庫隱含引數的sql語句資料庫SQL
- Python語法—函式及引數傳遞Python函式
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數