CODEDRAGON ㆍDevelopment/Java
CallableStatement 인터페이스
· CallableStatement는 DBMS의 저장 프로시저(Stored Procedure)를 호출할 수 있는 인터페이스로 Statement인터페이스와 PreparedStatement인터페이스의 메소드를 상속받고 있습니다.
· 저장 프로시저란 파라미터를 받을 수 있고, 다른 애플리케이션이나 PL/SQL 루틴에서 호출할 수 있는 이름을 가진 PL/SQL 블록입니다. 즉, SQL문을 프로그램화하여 함수화 시킨 스크립트 언어입니다.
· SQL문을 프로그램화 시켰기 때문에 조건문, 반복문, 변수처리 등을 사용할 수 있기 때문에 일괄처리 및 조건에 따라 다른 SQL문을 작성할 때 편리합니다.
· DBMS에 저장된 Stored Procedure 호출하기 위해 존재하는 객체로 이를 잘 활용하면 좀 더 빠른 성능의 프로그램을 구현할 수 있습니다.
CallableStatement 사용 방법
Connection 객체의 preparedCall()메소드를 실행시키면 CallableStatement인터페이스의 객체를 생성할수 있는데 Statement객체를 생성하기 위해 SQL문을 인자로 지정한 것처럼 prepareCall()메소드의 인자로 저장된 프로시저를 호출하는 문장을 지정해야 합니다.
prepareStatement()메소드를 호출할 때 실행될 SQL문을 지정한 것처럼 prepareCall()메소드를 호출할 때 "저장 프로시저 호출문"을 지정합니다.
CallableStatement 객체명 = Connection객체.prepareCall("저장프로시저 호출문"); |
CallableStatement cstmt = con.prepareCall("{call adjust(?,?)}"); |
CallableStatement는 Connection 인터페이스의 prepareCall()를 사용하면 됩니다.
prepareCall(String procedure) 의 프로시저 형태
prepareCall(String procedure) 의 프로시저는 2가지 형태를 가지고 있습니다.
prepareCall(String procedure){?= call <procedure-name>[<arg1>,<arg2>, ...]} |
<arg1>,<arg2>,..은 PreparedStatement 처럼 바인딩 변수로 처리 하고,
?은 registerOutParameter(~)계열의 메서드를 사용합니다.
prepareCall(String procedure){call <procedure-name>[<arg1>,<arg2>, ...]} |
<arg1>,<arg2>,..은 PreparedStatement 처럼 바인딩 변수로 처리 합니다.
Interface CallableStatement
https://docs.oracle.com/javase/8/docs/api/java/sql/CallableStatement.html
'Development > Java' 카테고리의 다른 글
생성자(Constructor) (0) | 2017.08.07 |
---|---|
CLOB 데이터 다루기 (0) | 2017.07.25 |
자카르타 DBCP API, 자카르타 DBCP API를 통한 커넥션 풀 사용 단계 (0) | 2017.07.24 |
JDBC를 이용한 Transaction, 트랜젝션의 처리 도식도, Transaction과 관련 메서드 (0) | 2017.07.24 |
데이터 형태 변환, 자바 데이터 유형 vs JDBC 데이터 유형 (0) | 2017.07.24 |