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调用存储过程类型的介绍,赶紧动手尝试下吧。

分享文章:iBATIS.NET调用存储过程类型浅析
浏览路径:http://www.shufengxianlan.com/qtweb/news26/454026.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联