서버 내부 JDBC 드라이버 사용

JAVA 저장 함수/프로시저에서 데이터베이스에 접근하기 위해서는 서버측 JDBC 드라이버(Server-Side JDBC Driver)를 사용해야 한다. JAVA 저장 함수/프로시저가 데이터베이스 내에서 실행되기 때문에 서버측 JDBC 드라이버는 다시 연결을 설정할 필요가 없다. 서버측 JDBC 드라이버로 해당 데이터베이스의 Connection을 얻는 방법은 아래와 같다. 첫 번째 방법은 JDBC 연결 URL로 “jdbc:default:connection:”을 사용하는 것이고, 두 번째는 cubrid.jdbc.driver.CUBRIDDriver 클래스의 getDefaultConnection() 메소드를 호출하는 것이다.

Class.forName(“cubrid.jdbc.driver.CUBRIDDriver”)
Connection conn =        DriverManager.getConnection(“jdbc:default:connection:”)

또는

cubrid.jdbc.driver.CUBRIDDriver.getDefaultConnection()

서버측 JDBC Driver에서 위와 같은 방법으로 데이터베이스에 연결하면 JAVA 저장 함수/프로시저 내에 존재하는 트랜잭션 관련 사항이 무시된다. 즉, JAVA 저장 함수/프로시저에서 수행되는 데이터베이스 연산은 JAVA 저장 함수/프로시저를 호출한 트랜잭션에 포함된다는 것을 의미한다. 아래의 PhoneNumber 클래스에서 conn.commit()은 무시된다.  

public class PhoneNumber{
      public static void Phone(String name, String phoneno) throws SQLException{
              String sql=" INSERT INTO PHONE(NAME, PHONENO)" + " VALUES (?, ?)"
              try{
                      Class.forName(“cubrid.jdbc.driver.CUBRIDDriver”)
                      Connection conn = DriverManager.getConnection(" jdbc:default:connection:" )
                      PreparedStatement pstmt = conn.prepareStatement(sql)
             
                      pstmt.setString(1, name)
                      pstmt.setString(2, phoneno)
                      pstmt.executeUpdate()

                      pstmt.close()
                      conn.commit()
                      conn.close()
              } catch (SQLException e) {
                      System.err.println(e.getMessage())
              }
      }
}