iBATIS.NET调用存储过程类型浅析

开发 后端
iBATIS.NET调用存储过程类型有哪些?在iBATIS.NET中调用存储过程是如何进行的呢?那么我们就将在这篇文章中向你讲解一番。

在iBATIS.NET中调用存储过程的调用方式比较简单,主要也就是两种iBATIS.NET调用存储过程类型:

1、更新类型的存储过程

2、查询类型的存储过程

下面就来看看具体的这两种iBATIS.NET调用存储过程类型:

1、更新类型的存储过程

  1. sp_InsertAccount:  
  2.  
  3. CREATE PROCEDURE [dbo].[sp_InsertAccount]  
  4.     -- Add the parameters for the stored procedure here  
  5.    @Account_ID int,  
  6.    @Account_FirstName varchar(32),  
  7.    @Account_LastName varchar(32)AS 
  8. BEGIN 
  9. insert into accounts (account_id, account_firstname, account_lastname)   
  10.     values (@Account_ID,@Account_FirstName,@Account_LastName ) 

ENDMap配置文件:

  1.   ﹤procedure id="InsertAccountViaStoreProcedure" parameterMap="insert-params_new"﹥  
  2.       sp_InsertAccount  
  3.   ﹤/procedure﹥  
  4.  
  5. arameterMap id="insert-params_new" class="Account"﹥  
  6. ﹤parameter property="Id" /﹥  
  7. ﹤parameter property="FirstName" /﹥  
  8. ﹤parameter property="LastName" /﹥  
  9. parameterMap﹥ 

这里要注意的就是ParameterMap中的参数个数和顺序要和sp_InsertAccount存储过程中的一致

Ado中的调用代码:

  1. public void InsertAccountViaStoreProcedure(Account account)  
  2. {  
  3.     try 
  4.     {  
  5.         sqlMap.Insert("InsertAccountViaStoreProcedure", account);  
  6.     }  
  7.     catch (DataAccessException ex)  
  8.     {  
  9.         throw new DataAccessException("Error executing InsertAccountViaStoreProcedure. Cause :" + ex.Message, ex);  
  10.     }  

这里使用的是sqlMap.Insert的方法,为了看起来直观一点,其实使用sqlMap.QueryForObject方法的话效果也是一样的:)

2、查询类型的存储过程

  1. GetAccountByName:  
  2.  
  3. CREATE PROCEDURE [dbo].[GetAccountByName]  
  4.     @name varchar(32)  
  5. AS 
  6. BEGIN 
  7. select * from accounts where Account_FirstName like '%' + @name + '%' 
  8. END 

在iBATIS.NET中调用存储过程,Map配置文件:

  1. procedure id="GetAccountByNameViaStoreProcedure" resultMap="account-result" parameterMap="selectpro-params"﹥  
  2.     GetAccountByName  
  3.   ﹤/procedure﹥  
  4.  
  5.   ﹤parameterMap id="selectpro-params" class="string"﹥  
  6.     ﹤parameter property="name"/﹥  
  7.   ﹤/parameterMap﹥ 

这里parameterMap也是和上面的要求一样,至于property的名字在这里没有实际作用,可以任意取名的

ADO中的调用代码:

  1. public ArrayList GetAccountByNameViaStoreProcedure(string strName)  
  2. {  
  3.     try 
  4.     {  
  5.         ArrayList list = (ArrayList)sqlMap.QueryForList("GetAccountByNameViaStoreProcedure", strName);  
  6.         return list;  
  7.     }  
  8.     catch (DataAccessException ex)  
  9.     {  
  10.         throw new DataAccessException("Error executing SqlAccountViaSqlMapDao.GetAccountById. Cause :" + ex.Message, ex);  
  11.     }  

以上就是关于iBATIS.NET调用存储过程类型的介绍,赶紧动手尝试下吧。

【编辑推荐】

  1. iBATIS.NET日志处理浅析
  2. iBATIS.NET字段映射自定义对象浅析
  3. iBATIS.NET中动态选择DAO浅析
  4. iBATIS.NET连接数据库处理浅析
  5. Castle.DynamicProxy在iBATIS.NET中的使用
责任编辑:仲衡 来源: cnblogs
相关推荐

2009-07-21 17:06:35

iBATIS.NET执

2009-07-20 13:22:47

iBATIS.Net日

2009-07-22 09:07:01

iBATIS.NET

2009-07-20 10:06:07

iBATIS.net查询方式

2009-07-20 14:56:18

iBATIS.NET动态选择DAO

2009-07-21 15:21:59

iBATIS.NET多

2009-07-20 09:51:19

iBATIS.net数据库缓存

2009-07-20 13:47:08

iBATIS.NET字

2009-07-20 15:14:44

iBATIS.NET连

2009-07-21 16:30:15

iBATIS.NET与单元测试

2009-07-16 13:50:31

ibatisResultMap

2009-07-22 14:28:52

iBATIS.NET配

2009-07-22 14:11:09

配置ibatis.neiBatis.net配

2009-07-20 15:27:22

Castle.DynaiBATIS.NET

2009-07-21 14:15:00

iBATIS.NET多

2009-07-27 14:41:33

ASP.NET调用存储

2009-07-17 17:57:20

NPetShop iBATIS.Net

2011-03-15 13:30:27

IBatis.netMySQL

2010-05-06 14:01:12

Oracle分页存储过

2009-07-21 14:57:41

iBatis中调用存储iBatis
点赞
收藏

51CTO技术栈公众号