PostgreSQL의JDBC 드라이버 통화를 완벽하게 지원합니다포스트그레SQL저장된 함수.
예 31-4. 내장 저장 스포츠 토토 기능
이 예는 다음을 호출하는 방법을 보여줍니다.포스트그레SQL내장 함수,상위, 제공된 문자열을 간단히 변환합니다. 인수를 대문자로 변환합니다.
// 거래를 끕니다.
con.setAutoCommit(false);
// 프로시저 스포츠 토토.
CallableStatement upperProc = con.prepareCall(" ? = call upper( ? ) ");
upperProc.registerOutParameter(1, Types.VARCHAR);
upperProc.setString(2, "소문자를 대문자로");
upperProc.execute();
String upperCased = upperProc.getString(1);
upperProc.close();
CallableStatement인터페이스다음에 적용되는 모든 고려사항설명그리고PreparedStatement신청CallableStatement그러나 추가적으로 당신은
또한 한 가지 추가 제한 사항을 고려하십시오.
당신은 내부에서만 저장된 함수를 스포츠 토토할 수 있습니다 거래.
결과세트에서
저장된 함수PostgreSQL의저장됨 함수는 a를 통해 결과를 반환할 수 있습니다.반환자값. 갑반환자.
JDBC의 확장으로서,포스트그레SQLJDBC 드라이버가 반환될 수 있음반환자값은ResultSet값.
예 31-5. 점점반환자함수의 값
a를 반환하는 함수를 스포츠 토토할 때반환자반환 유형을 다음과 같이 캐스팅해야 합니다.getObject에결과세트
// 거래를 끕니다.
con.setAutoCommit(false);
// 프로시저 호출.
CallableStatement proc = con.prepareCall(" ? = doquery 호출 ( ? ) ");
proc.registerOutParameter(1, Types.Other);
proc.setInt(2, -1);
proc.execute();
ResultSet 결과 = (ResultSet) proc.getObject(1);
동안(results.next())
// 결과에 대해 뭔가를 합니다...
또한 치료가 가능합니다.반환자고유한 유형으로 값을 반환합니다.
그 자체. JDBC 드라이버는 다음을 제공합니다.org.postgresql.PGRefCursorResultSet클래스
이 목적을 위해.
예 31-6. 치료반환자고유한 유형으로
con.setAutoCommit(false);
CallableStatement proc = con.prepareCall(" ? = doquery 호출 ( ? ) ");
proc.registerOutParameter(1, Types.Other);
proc.setInt(2, 0);
org.postgresql.PGRefCursorResultSet 참조
= (PGRefCursorResultSet) con.getObject(1);
문자열 커서이름 = refcurs.getRefCursor();
proc.close();