其实在IBatisNet中使用存储过程应该很简单了,应为IBatisNet本来就是基于Sql Mapping的。想着Npetshop中应该有例子看一下就行了,可是查了查map文件,发现没有,只要自己动手搞搞了。
在建立的测试数据库中建立一个简单的存储过程delUser @userId
*******************************************************
create proc delUser
@UserId varchar(10)
as
begin
delete from users where userId = @UserId
end
*******************************************************
接下来就是修改相应的Map文件了
修改前
….
<delete id="Delete" parameterClass="string" resultClass="int"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
delete from Users
where UserId = #value#
</delete>
….
修改后
……
<procedure id="Delete"resultClass="int" parameterMap="proc_delUser_map">
delUser
</procedure>
…
<parameterMaps>
<parameterMap id="proc_delUser_map" class="User">
<parameter property="UserId" />
</parameterMap>
</parameterMaps>
…….
注意:在proceduere 中必须设置parameterMap属性,就是存储不带参数也需要设置,关于存储过程带有Out类型的参数,想着设置应该和上述一样,就没有做测试。
看起来在IBatisNet中使用存储过程还是比较容易的。越来越喜欢IBatisNet了,觉得比Nhibernate灵活,并且比Nhibernate的配置简单好学。当然Ibtais和Hibernate侧重点不同,算是各有千秋吧,都是不错的数据层框架。