투케이2K

21. (TWOK/LOGIC) [데이터베이스] 프로시저 OUT 메시지, 테이블 조회 리턴 결과 반환 본문

투케이2K 로직정리

21. (TWOK/LOGIC) [데이터베이스] 프로시저 OUT 메시지, 테이블 조회 리턴 결과 반환

투케이2K 2022. 10. 4. 10:47

[로직 정리]

정리 로직 : 데이터베이스

상태 : [데이터베이스] 프로시저 OUT 메시지, 테이블 조회 리턴 결과 반환

 

[설 명]

[Oracle]

1. 프로시저 인풋 정의 타입에서 OUT 메시지, 커서 정의

2. 스프링 mybatis 에서 개별 메시지, 커서 받는 부분 정의

3. 예시 Mybatis 코드 : void userProcedure(Map map);

    <resultMap id="boardMap" type="hashmap" />
    <select id="userProcedure" parameterType="hashmap" statementType="CALLABLE">
        <![CDATA[
        { call TEST_USER_PROCEDURE (
            #{dept},
            #{msg, mode=OUT, jdbcType=VARCHAR, javaType=string},
            #{cur, mode=OUT, jdbcType=CURSOR, javaType=ResultSet, resultMap=boardMap}
        )}
        ]]>
    </select>






[Mssql / Mysql]

1. 프로시저 인풋 정의 타입에서 OUT 정의 없음

2. OUT 메시지, 테이블 조회 결과를 반환 하고 싶은 경우 select 절로 각각 리턴 실시

3. 스프링 mybatis 에서 OUT 메시지, 테이블 조회 결과를 받는 맵을 각각 정의 후 받음

4. 예시 Mybatis 코드 : List<List<Map<String, Object>>> USER_MSG_PROC(Map map);

    <resultMap id="USER_MSG_PROC_O_MSG" type="hashmap" />
    <resultMap id="USER_MSG_PROC_O_CURSOR" type="hashmap" />
    <select id="USER_MSG_PROC" parameterType="hashmap" resultMap="USER_MSG_PROC_O_MSG, USER_MSG_PROC_O_CURSOR" statementType="CALLABLE">
        <![CDATA[
        { call USER_MSG_PROC(
                #{IN_NAME},
                #{IN_AGE}
            )}
        ]]>
    </select>

 

반응형
Comments