HANDA개발
HANDA개발공부
HANDA개발
전체 방문자
오늘
어제
  • HANDA_list
    • 취업일지
    • 일상
    • TIL
    • Linux
    • RabbitMQ
    • Spring
      • Security
      • Batch
      • Project
    • ERROR
    • DB
      • Oracle
      • PostgreSQL
    • JUnit
    • JAVA
    • AWS
    • OAuth2.0
    • Redis
    • API
    • Jenkins
    • Nigix
    • CS
    • 코테준비
      • 자료구조
      • 알고리즘
    • 학교수업
    • 디자인패턴

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 애플코딩
  • mybatis
  • batch
  • 스프링배치
  • cmd
  • error
  • MQ
  • 데이터베이스
  • EAI
  • Spring
  • valid어노테이션
  • 재실행
  • oracle
  • 명령어
  • 공부준비
  • Parameter
  • java실행과정
  • 어노테이션
  • garbaage
  • 다른파라미터
  • JAVA명령어
  • JVM
  • gson
  • 프로시져호출
  • SpringBatch
  • 상태관리
  • Job
  • 역직렬화
  • 프로그래머스
  • @Valid

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HANDA개발

HANDA개발공부

카테고리 없음

oracle call명령어는 mybatis에서 어떻게 구현해야할까?

2024. 6. 4. 13:50

oracle call명령어는 mybatis에서 어떻게 구현해야할까?

Oracle의 CALL 명령어를 MyBatis에서 구현하는 방법

  1. ResultMap을 정의합니다. 이는 반환되는 결과를 Java 객체에 매핑하는 데 사용됩니다.
<resultMap id="UserResult" type="User">
    <id property="userId" column="userId"/>
    <result property="firstName" column="firstName"/>
    <result property="lastName" column="lastName"/>
</resultMap>
  1. Select 문을 작성합니다. 여기서 statementType은 CALLABLE로 설정하고, resultMap은 위에서 정의한 UserResult를 사용합니다. CALL 명령어를 사용하여 저장 프로시저를 호출합니다.
<select id="getUsers" statementType="CALLABLE" resultMap="UserResult">
    {CALL GetUsers(#{resultSet,mode=OUT,jdbcType=CURSOR,resultMap=UserResult})}
</select>
  1. 마지막으로, MyBatis 매퍼 인터페이스를 작성합니다. 이 인터페이스는 저장 프로시저를 호출하는 메서드를 정의합니다.
public interface UserDAO {
    public List<User> getUsers();
}

위의 예제는 GetUsers라는 저장 프로시저를 호출하는 방법을 보여줍니다1. 이 방법을 사용하여 Oracle의 CALL 명령어를 MyBatis에서 구현할 수 있습니다. 필요에 따라 저장 프로시저의 이름과 매개변수를 변경할 수 있습니다.

참고로, 저장 프로시저가 결과를 반환하는 경우 resultMap을 사용하여 결과를 Java 객체에 매핑할 수 있습니다1. 또한, 저장 프로시저가 입력 매개변수를 필요로 하는 경우 #{} 구문을 사용하여 매개변수를 전달할 수 있습니다1. 이때, mode 속성을 IN으로 설정하여 매개변수가 입력임을 나타냅니다1.

프로시져가 db로 구현되어있는 경우 그냥 statmentType 만 CALLABLE 로 입력하면 될까?

statementType을 CALLABLE로 설정하면 MyBatis는 해당 SQL을 저장 프로시저 호출로 처리합니다. 그러나 저장 프로시저의 입력 매개변수와 출력 매개변수를 올바르게 처리하기 위해 추가적인 설정이 필요할 수 있습니다.

예를 들어, 저장 프로시저가 결과를 반환하는 경우 resultMap을 사용하여 결과를 Java 객체에 매핑해야 합니다. 또한, 저장 프로시저가 입력 매개변수를 필요로 하는 경우 #{} 구문을 사용하여 매개변수를 전달할 수 있습니다. 이때, mode 속성을 IN으로 설정하여 매개변수가 입력임을 나타냅니다.

따라서, 저장 프로시저가 DB에 이미 구현되어 있다면 statementType을 CALLABLE로 설정하고 필요에 따라 추가적인 설정을 하면 됩니다. 이렇게 하면 MyBatis에서 Oracle의 CALL 명령어를 쉽게 구현할 수 있습니다.

    HANDA개발
    HANDA개발

    티스토리툴바