最近使用ibatis,找到的一些资料,算是个备份

转载:Ibatis访问存储过程的配置

最近项目里经常需要配置用Ibatis访问存储过程(或函数),多次摸索,发现配置的难点是在于如何配置输入输出参数。现以访问Oracle的存储过程(或函数)举例说明。

一般基本的配置要点如下:

(1)、访问存储过程(或函数)一般以procedure标签来定义statement。

(2)、输入输出的参数需要用parameterMap标签单独定义。

(3)、区分输入输出参数用parameter标签的mode属性来定义,分别为”OUT”和”IN”。

按照是否有返回值,是否使用游标分类说明如下:

第一类,没有返回结果,有输出参数以out标识的过程访问配置样式:

<parameterMap id=”functionPramsMap” class=”map”>

<parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/>

<parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/>

<parameter property=”p3″ jdbcType=”INTEGER” javaType=”int” mode=”OUT” />

</parameterMap>

<procedure id=”statementId” parameterMap=”functionPramsMap”>

{call packageName.functionName(?,?,?)}

</procedure>


第二类,有返回结果,有输出参数以out标识的过程访问配置样式:
<parameterMap id=”functionParamsMap” class=”map”>

<parameter property=”p0″ jdbcType=” INTEGER” javaType=”string” mode=”OUT”/>

<parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/>

<parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/>

<parameter property=”p3″ jdbcType=”INTEGER” javaType=”int” mode=”OUT” />

</parameterMap>

<procedure id=”statementId” parameterMap=” functionParamsMap”>

{?=call packageName.functionName(?,?,?)}

</procedure>


这里参数p0标识调用过程的返回结果。

第三类,有使用游标的的过程访问配置样式:
<resultMap id=”resultMap” class=”package.ClassA”>

<result property=”property0″ column=”field0″ />

<result property=”property1″ column=”field2″ />

<result property=”property2″ column=”field3″ />

</resultMap>

<parameterMap id=”functionParamsMap” class=”map”>

<parameter property=”p0″ jdbcType=” INTEGER” javaType=”string” mode=”OUT”/>

<parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/>

<parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/>

<parameter property=”p3″ jdbcType=”ORACLECURSOR”

javaType=”java.sql.ResultSet” mode=”OUT” resultMap=”resultMap” />

</parameterMap>

<procedure id=”statementId” parameterMap=”functionPramsMap”>

{?=call packageName.functionName(?,?,?)}

</procedure>



这里,关键注意的是p3参数,由于使用的是oracle数据库驱动,所以用jdbcType=”ORACLECURSOR”表示oracle游标,同时由于是游标,所以javaType=”java.sql.ResultSet”。最后必须要给参数p3配置好resultMap属性,以说明游标返回的结果集映射方式,不配置此属性,在代码里来访问结果集是不行的。此时,在Java代码里调用的样式如下:
HashMap<String, Object> params = new HashMap<String, Object>()
----------------------------------------------------------------------------
foxit reader 去广告批处理
-------------------------------------------------
@echo off
title不显示软件界面右上角的广告条
echo.
echo不显示软件界面右上角的广告条
pause
reg add "HKCU\Software\Foxit Software\福昕阅读器\MainFrame" /f /v ShowAd /t REG_SZ /d 0 >nul 2>nul
echo.
echo.
echo.
echo设置完成
echo.
echo按任意键关闭
pause>nul
exit
  

你可能感兴趣的:(存储过程,ibatis,游标)