IBatis.Net学习笔记十三:在IBatis.Net中调用存储过程

简介:

其实调用方式比较简单,主要也就是两种类型的存储过程:
1、更新类型的存储过程
2、查询类型的存储过程
下面就来看看具体的调用方式:
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 )
END

Map配置文件:

        <procedure id="InsertAccountViaStoreProcedure" parameterMap="insert-params_new">
            sp_InsertAccount
        </procedure>

    <parameterMap id="insert-params_new" class="Account">
      <parameter property="Id" />
      <parameter property="FirstName" />
      <parameter property="LastName" />
    </parameterMap>

这里要注意的就是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);
            }
        }

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

2、查询类型的存储过程
GetAccountByName

CREATE PROCEDURE [dbo].[GetAccountByName]
    @name varchar(32)
AS
BEGIN
select * from accounts where Account_FirstName like '%' + @name + '%'
END


Map配置文件:

    <procedure id="GetAccountByNameViaStoreProcedure" resultMap="account-result" parameterMap="selectpro-params">
      GetAccountByName
    </procedure>

    <parameterMap id="selectpro-params" class="string">
      <parameter property="name"/>
    </parameterMap>

这里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);
            }
        }
 
http://www.cnblogs.com/firstyi/archive/2008/01/25/1053208.html
分类:  IBatis.net
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4981697.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
SQL 存储 分布式计算
DataWorks产品使用合集之在DataWorks中调用存储过程(PROCEDURE)如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
204 0
|
7月前
|
并行计算 算法 调度
(学习笔记)U-net++代码解读
python: 3.10 U-net++结构图
362 0
|
开发框架 前端开发 .NET
ASP.NET Core 核心特性学习笔记「下」
ASP.NET Core 核心特性学习笔记「下」
|
开发框架 前端开发 中间件
ASP.NET Core 核心特性学习笔记「上」
ASP.NET Core 核心特性学习笔记「上」
|
存储 SQL 关系型数据库
MySQL 之存储过程|学习笔记
快速学习 MySQL 之存储过程
MySQL 之存储过程|学习笔记
|
存储 SQL NoSQL
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(二)
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(二)
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(二)
|
存储 SQL 关系型数据库
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(一)
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(一)
MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务(一)
|
存储 SQL Java
Mybatis学习笔记(四)调用存储过程
Mybatis学习笔记(四)调用存储过程
|
SQL 存储 Oracle
Oracle数据库学习笔记四——存储过程的值传递和引用传递
Oracle数据库学习笔记四——存储过程的值传递和引用传递
318 0
|
传感器 设计模式 开发框架
ASP.NET MVC5学习笔记01
ASP.NET MVC5学习笔记01
132 0
ASP.NET MVC5学习笔记01

热门文章

最新文章