Where The Streets Have No Name

procedure 호출 본문

Developement/Java

procedure 호출

highheat 2006. 5. 1. 10:55

호출할 procedure는

-------------------------------------------------------

CREATE OR REPLACE PROCEDURE update_bum
(nums IN NUMBER, p_out OUT varchar2)
IS
BEGIN
UPDATE bumworld
SET content = '수정'
WHERE num = nums;
COMMIT;
p_out := 'save';
END update_bum;

--------------------------------------------------------

입니다.

첫번째 인자에 값을 넣고 두번째 인자로 값을 받는거.

 

아무튼 내용은

---------------------------------------------------------

import java.sql.*;


/**
* @author bumworld
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ProcedureTest {
   Connection conn = null;
   PoolManagerBean db;             <- 요놈은 개인적으로 사용하는 connection pool
   
   public ProcedureTest() {
       try {
           db = PoolManagerBean.getInstance();
           conn = db.getConnection();
       } catch (Exception e) {
           e.printStackTrace();
       }
   }

    public String procedure() {
 CallableStatement cs;
 String out = "";
       try {
           cs = conn.prepareCall("{call update_bum(?, ?)}");        <-- procedure name
           cs.setInt(1, 1);            <-- 첫번째 인자
           cs.registerOutParameter(2, java.sql.Types.VARCHAR);   <-- 두번째 받을 값
           cs.executeUpdate();
           out = cs.getString(2);                              <-- 실제 return
       } catch (SQLException e) {
           e.printStackTrace();
       }

        return out;
   }

    public static void main(String [] args) {
       ProcedureTest proc = new ProcedureTest();
       String str = proc.procedure();
       System.out.println("받은값 : " + str);
   }
}