IBatis.Net系列-多参数的SQL语句的配置

我们在使用IBatis.net操作数据的时候,肯定会碰到SQL参数
当我们有一个参数时,IBatis的xml映射文件如下:

< statement  id ="getProduct"  parameterClass ="System.Int32" >
  select * from PRODUCT where PRD_ID = #value#
</ statement >

当我们有多个参数时,xml如下:

< statement  id ="getProduct"  parameterClass ="System.Collections.IDictionary" >
  select * from PRODUCT
  where PRD_CAT_ID = #catId#
  and PRD_CODE = #code#
</ statement >

在代码中必须赋给他一个Hashtable,并且这个Hashtable具有catId和code两个键值,注意要区分大小写。

HashTable实现了System.Collections.IDictionary接口的,所以直接用他应该也是可以的。

 

当我们执行存储过程的时候,xml如下:
首先定义参数定义集合

< parameterMaps >
 
< parameterMap  id ="insertperson"  class ="Person" >
  
< parameter  property ="FirstName"  column ="PER_FIRST_NAME"   />
  
< parameter  property ="LastName"  column ="PER_LAST_NAME"   />
 
</ parameterMap >
</ parameterMaps >

然后定义操作

<!-- 使用存储过程 -->
< 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中的键值名称和参数集合众的property相对应,并且区分大小写.
代码下载:/Files/maplye/IBatisDemo.rar

 

 

转自:http://www.cnblogs.com/maplye/archive/2006/04/15/375846.html

你可能感兴趣的:(sql,.net,xml,ibatis,datamapper)