Sql-deal.xml配置
<!—定义SP中返回的result map-->
<resultMap id="dynDealRM" class="com.pojo.DynamicData">
<result property="dynDataId" column="DYN_DATA_ID" />
<result property="dealId" column="DEAL_ID" />
<result property="facilityId" column="FAC_ID" />
</resultMap>
<parameterMap id="searchResultParameters" class="java.util.Map">
<parameter property="loginId" javaType="java.lang.String" jdbcType="VARCHAR2" mode="IN" />
<parameter property="criId" javaType="java.lang.Integer" jdbcType="INTEGER" mode="IN" />
<!—Integer类型,SP中也使用Integer类型接收参数-->
<parameter property="dealResult" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT" resultMap="dynDealRM " />
</parameterMap>
<procedure id="getDealSearchInfo" parameterMap="searchResultParameters">
{call DEAL_SEARCH_PKG.GET_INFO_SEARCH(?,?,?)}
</procedure>
Oracle SP中使用:
PROCEDURE GET_DEALS_INFO_SEARCH
(
login_id IN VARCHAR2,
criteria_id_in IN INTEGER,
deal_result OUT sys_refcursor
)
IS
BEGIN
open deal_result for
select DYN_DATA_ID
, DEAL_ID
, FAC_ID
From user_deal where criteria_id = criteria_id_in;
END GET_DEALS_INFO_SEARCH;
Java代码中获取结果
List<DynamicData> list = queryMap.get(dealResult);