iBATIS.NET调用存储过程类型浅析
创始人
2024-04-18 05:40:14
0

在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中的使用

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...