Ibatis parameterMap을 이용한 프로시져 콜
디비 프로시져 콜하고 return값을 out받기 위한 ParameterMap을 간단히 정리해 보았습니다.
아래와 같이 parameterMap을 정의 하고, procedure를 정의 합니다.
이때 in,out mode 속성을 표시하고, returnValue를 받기위해 ?=을 call앞에 붙여줍니다.
그럼 Map의 형태로 return값을 받게됩니다.
<sqlMap namespace="member">
<parameterMap id="memberInsertParameters" class="java.util.Map">
<parameter property="ReturnValue" jdbcType="INTEGER" javaType="java.lang.Integer"
mode="OUT" />
<parameter property="Pid" jdbcType="VARCHAR" javaType="java.lang.String"
mode="IN" />
<parameter property="Pname" jdbcType="INTEGER" javaType="java.lang.Integer"
mode="IN" />
<parameter property="Pemail" jdbcType="STRING" javaType="java.lang.String"
mode="IN" />
</parameterMap>
<parameterMap id="memberListSelectParameters" class="java.util.Map">
<parameter property="PiPage" jdbcType="INTEGER" javaType="java.lang.Integer"
mode="IN" />
<parameter property="PiPageSize" jdbcType="INTEGER" javaType="java.lang.Integer"
mode="IN" />
<parameter property="Psearch" jdbcType="STRING" javaType="java.lang.String"
mode="IN" />
<parameter property="Pkeyword" jdbcType="STRING" javaType="java.lang.String"
mode="IN" />
<parameter property="OtotalCount" jdbcType="INTEGER" javaType="java.lang.Integer"
mode="OUT" />
<parameter property="OtotalPageCount" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT" />
</parameterMap>
<procedure id="insert_member" parameterMap="memberInsertParameters">
{? = call pWebMemberInsert (?, ?, ?)}
</procedure>
<procedure id="select_admin_member_list" parameterMap="memberListSelectParameters" resultClass="MemberDto">
{call pWebMemberListSelect (?, ?, ?, ?, ?, ?)}
</procedure>
</sqlMap>