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

由于本人对IBatis.Net的并不是很精通,也是在边学边工作实践,所以IBatis.Net系列的文章会显的没有一定的连贯性,
这些文章应该是我平时的关于IBatis.Net的一些知识的积累吧。下面进入正题:

我们在使用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两个键值,注意要区分大小写。

当我们执行存储过程的时候,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

posted @ 2006-04-15 12:15 福娃 阅读(3185) 评论(10)  编辑 收藏 网摘 所属分类: IBatis.Net

  回复  引用  查看    
#1楼 2006-09-05 17:28 | 从无到有.NET      
parameterClass直接指定为hashtable也可以
  回复  引用    
#2楼 2006-09-06 14:44 | jacktu[未注册用户]
.
  回复  引用  查看    
#3楼[楼主] 2006-09-06 16:26 | 福娃      
HashTable实现了System.Collections.IDictionary接口的,所以他可以的。
  回复  引用    
#4楼 2006-10-26 21:54 | microsystem[未注册用户]
存储过程返回值如和取得
  回复  引用  查看    
#5楼 2007-02-21 12:51 | 海上漫步      
关联几个表取数据怎么搞?
  回复  引用  查看    
#6楼 2007-03-02 14:08 | Daniel Pang      
@海上漫步
多表的操作和这个一样




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 375846




相关文章:

相关链接: