본문 바로가기
IT 개발/POSTGIS

mybatis - 프로시저 사용 (파라미터 있는 경우도 포함)

by Love of fate 2023. 3. 14.
728x90
반응형

[mybatis - 프로시저 사용 (파라미터 있는 경우도 포함)]

 

mybatis에서 프로시저를 사용할때는 statementType으로 callable을 선언해줘야한다. 

그래야 프로시저를 사용함을 앎

 

 -- statementType="CALLABLE"

 

 

mode
IN,OUT,INOUT파라미터를 명시하기 위해 사용한다.
파라미터가 OUT / INIOUT이라면 파라미터의 실제 값은 변경될 것이다.
mode=OUT(또는 INOUT)이고, jdbcType=CURSOR라면 파라미터의 타입에 ResultSet를 매핑하기 위해 resultMap을 명시해야 한다.

 

jdbcType
지원되는 타입 목록에서 설명하는 JDBC 타입. 
JDBC타입은 insert, update 또는 delete 하는 null 입력이 가능한 칼럼에서만 필요하다. 
JDBC의 요구사항이지 마이바티스의 요구사항이 아니다. 
JDBC로 직접 코딩을 하다보면 null이 가능한 값에 이 타입을 지정할 필요가 있을 것이다.

지원되는 JDBC 타입

상세한 설명전에 마이바티스는 jdbcType열거를 통해 다음의 JDBC 타입들을 지원한다.

BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED
TINYINT REAL VARCHAR BINARY BLOB NVARCHAR
SMALLINT DOUBLE LONGVARCHAR VARBINARY CLOB NCHAR
INTEGER NUMERIC DATE LONGVARBINARY BOOLEAN NCLOB
BIGINT DECIMAL TIME NULL CURSOR ARRAY

 

    <select id="newNomiNamteProcesure" statementType="CALLABLE">
    	{ CALL 
    		P_HRM_NEW_NOMINATE (
    			#{loginCoId, mode=IN,jdbcType=VARCHAR}, 
    			#{newempSeqNo, mode=IN,jdbcType=INTEGER}, 
    			#{emplNo, mode=IN,jdbcType=VARCHAR}, 
    			#{sysRusrIp,mode=IN,jdbcType=VARCHAR},
    			#{returnCode, mode=OUT, jdbcType=INTEGER},
		        #{returnMsg, mode=OUT, jdbcType=VARCHAR} 
    		)
    	}
    </select>

 

<parameterMap class="map" id="procParam">
    <parameter property="P_IN1"  jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
    <parameter property="P_IN2"  jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
    <parameter property="P_OTU1" jdbcType="DECIMAL" javaType="long"             mode="OUT"/>
    <parameter property="P_OUT2" jdbcType="DECIMAL" javaType="long"             mode="OUT"/>
</parameterMap>
 
<procedure id="proc_test" parameterMap="procParam">
    <![CDATA[
       {call PROC_TEST(?, ?, ?, ?)}
   ]]>
</procedure>
728x90
반응형