JAVA에서 Stored Procedure사용하기 SP
CallableStatement
Oracle 에서 입력된 stored procedure 를 java에서 실행해서 결과를 얻고 싶으시다면 Statement 대신에 CallableStatement 라는걸 쓰시면 됩니다.
그 뒤에는 어차피 insert, update 같은 것들과 같이 성공 또는 실패, 성공시 몇개가 성공했는지, query 인 경우에는 ResultSet 받아서 fetch 하면서 값 뽑아서 쓰시면 됩니다. Connection 까지는 똑같고 그 다음부터가 약간 다른데 대충 아래와 같습니다.
// 위에서 JDBC 드라이버 잡고 Connection 까지 맺은 상태... CallableStatement cs = con.prepareCall("{call myStoredProcedure(?,?,?)}");
|
PreparedStatement
CallableStatement
자바에서 저장프로시져 호출하는건 PreparedStatement 클래스를 사용하는 방법과 CallableStatement 클래스
를 사용하는 방법이 있습니다.
먼저 CallableStatement 클래스를 사용하여 저장프로시져 호출 방법
ResultSet rs = null; CallableStatement cs = null;
cs = conn.prepareCall("{call dbo.comempsearch(?)}");
이렇게 하면 디비에 저장되어있는 comempsearch라는 프로시져를 호출 하는겁니다.
?표는 저장프로시져에 받을 파라미터를 넘길수 있습니다.(단점: 저장프로시져에서 선언한 순서대로 파라미터를
넘겨야 됩니다.)
PreparedStatement 클래스를 사용하는 방법 PreparedStatement pstmt = null; ResultSet rs = null;
String sqlQuery = "exec jaorderprc @pWORKGB ='S', @pUSERID ='"+userID+"', @pFIRSTDATE ='"+firstDate+"'";
이렇게 해서 jaorderprc프로시져를 호출 할수 있습니다. 이건 프로시져에서 선언한 변수들을 수동으로 값을 정
해줄수 있습니다.(변수 선언 순서를 신경 안써도 된다는 장점이 있습니다.)
이렇게 해서 프로시져를 호출 하면 select문경우 값을 받을때는
while(rs.next()){
제가 짠 소스는 변수만 선언해둔 클래스를 사용하여 한것입니다.
|