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

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

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

1、更新类型的存储过程

2、查询类型的存储过程

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

1、更新类型的存储过程

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

ENDMap配置文件:

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

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

Ado中的调用代码:

public void InsertAccountViaStoreProcedure(Account account)  
{  
    try 
    {  
        sqlMap.Insert("InsertAccountViaStoreProcedure", account);  
    }  
    catch (DataAccessException ex)  
    {  
        throw new DataAccessException("Error executing InsertAccountViaStoreProcedure. Cause :" + ex.Message, ex);  
    }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

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

2、查询类型的存储过程

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

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

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

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

ADO中的调用代码:

public ArrayList GetAccountByNameViaStoreProcedure(string strName)  
{  
    try 
    {  
        ArrayList list = (ArrayList)sqlMap.QueryForList("GetAccountByNameViaStoreProcedure", strName);  
        return list;  
    }  
    catch (DataAccessException ex)  
    {  
        throw new DataAccessException("Error executing SqlAccountViaSqlMapDao.GetAccountById. Cause :" + ex.Message, ex);  
    }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

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

【编辑推荐】

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

2009-07-20 13:22:47

iBATIS.Net日

2009-07-22 09:07:01

iBATIS.NET

2009-07-21 17:06:35

iBATIS.NET执

2009-07-20 14:56:18

iBATIS.NET动态选择DAO

2009-07-20 10:06:07

iBATIS.net查询方式

2009-07-20 09:51:19

iBATIS.net数据库缓存

2009-07-21 15:21:59

iBATIS.NET多

2009-07-20 15:14:44

iBATIS.NET连

2009-07-20 13:47:08

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-27 14:41:33

ASP.NET调用存储

2009-07-17 17:57:20

NPetShop iBATIS.Net

2011-03-15 13:30:27

IBatis.netMySQL

2009-07-20 15:27:22

Castle.DynaiBATIS.NET

2009-07-21 14:15:00

iBATIS.NET多

2009-07-21 16:17:28

iBATIS.NET

2010-05-06 14:01:12

Oracle分页存储过
点赞
收藏

51CTO技术栈公众号