본문 바로가기

Java dev/iBatis

Ibatis parameterMap을 이용한 프로시져 콜

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>