欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

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

发布时间:2024/9/20 asp.net 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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)ASBEGINinsert 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)ASBEGINselect * 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学习笔记十三:在IBatis.Net中调用存储过程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。