最近一段时间要将原有的ORM换成ibatisnet,ibatisnet这个上手速度应该还是比较快的,很多文章都讲了如何配置,如何调试,已经很完整了。但是大部分文章都是讲述配置的,而且都是简单的SQL语句。关于函数调用的,找了半天也没有找到合适的方法。最后在stackoverflow上看到一个类似的方法,就是将函数转变为存储过程。下面简单举个存储过程例子,供大家参考。
1、XML文件
<procedure id="PRO_GETTRADESN" parameterMap="GetTradesn">
PRO_GETTRADESN
</procedure>
<parameterMap id="GetTradesn">
<parameter property="tradesn" column="tradesn" direction="Output" dbType="VARCHAR2" size ="20" />
</parameterMap>
需要在XML文件中添加以上两段,前者是声明存储过程,后者是表示传入的参数类型。如果需要返回值 注意添加这个属性direction="Output"即可。
2、调用程序
ISqlMapper mapper = Mapper.Instance(); //得到ISqlMapper实例
string tradesn = "";
Hashtable ht = new Hashtable();
ht.Add("tradesn", tradesn); // Output
mapper.QueryForList("PRO_GETTRADESN", ht);
注意需要传入一个 hashtable 即可
最后说一下,ibatisnet 中文的文档相当少,而且只要稍微配置错一点,可能就无法得到想要的结果。另外就是如果谁有调用数据库函数并能获取到返回值的方法,麻烦将方法分享给我,以便我学习一下。谢谢。