[Mybatis] 프로시저 호출 개념과 예제
프로시저(procedure)는 데이터베이스 내에서 저장된 일련의 SQL 문들을 그룹화한 것으로, 하나의 단위로 실행되는 데이터베이스 오브젝트입니다. MyBatis에서는 프로시저 호출을 지원하여 프로시저를 실행하고 결과를 처리할 수 있습니다. 아래는 프로시저 호출의 개념과 예제입니다.
예제: 프로시저 호출
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.util.HashMap;
import java.util.Map;
public class StoredProcedureExample {
public static void main(String[] args) {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
.build(StoredProcedureExample.class.getResourceAsStream("/mybatis-config.xml"));
try (SqlSession sqlSession = sessionFactory.openSession()) {
// 맵 형태의 매개변수 설정
Map<String, Object> parameterMap = new HashMap<>();
parameterMap.put("inputParam", "SomeInputValue");
// 프로시저 호출
sqlSession.selectOne("callSampleProcedure", parameterMap);
// 프로시저의 결과 값 확인
String outputValue = (String) parameterMap.get("outputParam");
System.out.println("Output Value from Procedure: " + outputValue);
}
}
}`
매퍼 XML 파일:
SampleMapper.xml
:
<!-- 프로시저 호출을 위한 쿼리 -->
<select id="callSampleProcedure" statementType="CALLABLE">
{ CALL sample_procedure(#{inputParam, mode=IN}, #{outputParam, mode=OUT, jdbcType=VARCHAR}) }
</select>`
위의 예제에서는 프로시저를 호출하고, 호출 결과를 처리하고 있습니다. CALLABLE
타입으로 쿼리를 정의하며, #{inputParam}
은 프로시저의 입력 매개변수를, #{outputParam}
은 프로시저의 출력 매개변수를 나타냅니다.
프로시저를 호출하면 parameterMap
을 사용하여 입력 매개변수 값을 설정하고, 프로시저 실행 후 결과를 맵에서 추출하여 출력값을 확인할 수 있습니다. 이를 통해 MyBatis를 사용하여 프로시저를 호출하고 결과를 처리할 수 있습니다.