자바에서 저장프로시져 호출하는건 PreparedStatement 클래스를 사용하는 방법과 CallableStatement 클래스
를 사용하는 방법이 있습니다.
먼저 CallableStatement 클래스를 사용하여 저장프로시져 호출 방법
ResultSet rs = null;
CallableStatement cs = null;
cs = conn.prepareCall("{call dbo.comempsearch(?)}");
cs.setString(1,"S");
rs = cs.executeQuery();
이렇게 하면 디비에 저장되어있는 comempsearch라는 프로시져를 호출 하는겁니다.
?표는 저장프로시져에 받을 파라미터를 넘길수 있습니다.(단점: 저장프로시져에서 선언한 순서대로 파라미터를
넘겨야 됩니다.)
PreparedStatement 클래스를 사용하는 방법
PreparedStatement pstmt = null;
ResultSet rs = null;
String sqlQuery = "exec jaorderprc @pWORKGB ='S', @pUSERID ='"+userID+"', @pFIRSTDATE ='"+firstDate+"'";
sqlQuery += ", @pLASTDATE ='"+lastDate+"', @pPartNo ='"+Sabun+"', @pORDNUM ='"+OrKey+"'";
pstmt = conn.prepareStatement(sqlQuery);
rs = pstmt.executeQuery();
이렇게 해서 jaorderprc프로시져를 호출 할수 있습니다. 이건 프로시져에서 선언한 변수들을 수동으로 값을 정
해줄수 있습니다.(변수 선언 순서를 신경 안써도 된다는 장점이 있습니다.)
이렇게 해서 프로시져를 호출 하면 select문경우 값을 받을때는
while(rs.next()){
aaa vo = new aaa();
vo.ORDNUM = rs.getString("ORDNUM");
vo.PartNo = rs.getString("PartNo");
vo.FACTGB = rs.getString("FACTGB");
vo.ORDATE = rs.getString("ORDATE");
vo.ORSER = rs.getInt("ORSER");
vo.SABUN = rs.getString("SABUN");
vo.CUSTCD = rs.getString("CUSTNAME1");
vo.ORDAN = rs.getInt("ORDAN");
vo.ORDQTY = rs.getInt("ORDQTY");
arrList.add( vo );
}
제가 짠 소스는 변수만 선언해둔 클래스를 사용하여 한것입니다.