iBATIS.NET處理多參數(shù)的SQL語(yǔ)句的配置
由于本人對(duì)iBATIS.NET的并不是很精通,也是在邊學(xué)邊工作實(shí)踐,所以iBATIS.NET系列的文章會(huì)顯的沒有一定的連貫性,
這些文章應(yīng)該是我平時(shí)的關(guān)于iBATIS.NET的一些知識(shí)的積累吧。下面進(jìn)入正題:
我們?cè)谑褂胕BATIS.NET操作數(shù)據(jù)的時(shí)候,肯定會(huì)碰到SQL語(yǔ)句參數(shù)
當(dāng)我們有一個(gè)參數(shù)時(shí),iBATIS的XML映射文件如下:
- ﹤statement id="getProduct" parameterClass="System.Int32"﹥
- select * from PRODUCT where PRD_ID = #value#
- ﹤/statement﹥
當(dāng)我們有多個(gè)參數(shù)時(shí),XML如下:
- ﹤statement id="getProduct" parameterClass="System.Collections.IDictionary"﹥
- select * from PRODUCT
- where PRD_CAT_ID = #catId#
- and PRD_CODE = #code#
- ﹤/statement﹥
在代碼中必須賦給他一個(gè)Hashtable,并且這個(gè)Hashtable具有catId和code兩個(gè)鍵值,注意要區(qū)分大小寫。
當(dāng)我們執(zhí)行存儲(chǔ)過程的時(shí)候,xml如下:
首先定義參數(shù)定義集合
- ﹤parameterMaps﹥
- ﹤parameterMap id="insertperson" class="Person"﹥
- ﹤parameter property="FirstName" column="PER_FIRST_NAME" /﹥
- ﹤parameter property="LastName" column="PER_LAST_NAME" /﹥
- ﹤/parameterMap﹥
- ﹤/parameterMaps﹥
然后定義操作
- ﹤!--使用存儲(chǔ)過程--﹥
- ﹤procedure id="InsertPerson3" parameterMap="insertperson" resultMap="SelectResult"﹥
- usp_InsertPerson
- ﹤/procedure﹥
程序代碼如下:
- public void InsertPerson3()
- {
- SqlMapper sqlmap = IBatisNet.DataMapper.Mapper.Instance();
- Hashtable ht = new Hashtable();
- ht.Add("FirstName","姚");
- ht.Add("LastName","明2");
- sqlmap.Insert("InsertPerson3",ht);
- }
注意:Hashtable中的鍵值名稱和參數(shù)集合眾的property相對(duì)應(yīng),并且區(qū)分大小寫.
iBATIS.NET下的多參數(shù)SQL語(yǔ)句的配置情況就簡(jiǎn)單介紹到這里,希望對(duì)你有所幫助。
【編輯推薦】