DepartmentDataTest 클래스는 DEPARTMENT 테이블에 액세스하는 방법을 보여줍니다. pureQuery에 의해 생성되는 이 클래스는 어노테이션 방식 메소드 스타일의 프로그래밍을 보여줍니다.
리팩토링된 newAnnotStatic 메소드를 사용하여 Java 스토어드 프로시저를 작성할 수 있습니다. 이 메소드의 myPdqProperties.put("pdq.executionMode", "STATIC"); 명령문은 메소드를 사용하여 작성한 스토어드 프로시저가 정적으로 실행되게 합니다.
package ANNOTATED; // Imports import java.util.Iterator; import pureQuery.example.SampleUtil; import com.ibm.pdq.runtime.Data; import com.ibm.pdq.runtime.ResultIterator; import com.ibm.pdq.runtime.factory.DataFactory; import java.sql.*; public class DepartmentDataTest { public static void newAnnotStatic(String[] s) throws SQLException,Exception { Connection con = DriverManager.getConnection("jdbc:default:connection"); java.util.Properties myPdqProperties = new java.util.Properties(); myPdqProperties.put("pdq.executionMode", "STATIC"); DepartmentData d = DataFactory.getData(DepartmentData.class, con,myPdqProperties); Iterator<Department> departments = d.getDepartments(); if(departments.hasNext()){ Department dept = departments.next(); s[0] = dept.getDeptname(); } } /** * @param args */ public static void main(String[] args) { DepartmentData data = null; try { if (args.length < 1) { SampleUtil.println("All required arguments were not provided."); return; } data = SampleUtil.getData( DepartmentData.class, "jdbc:db2://iicriollo3.svl.ibm.com:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;", "db2admin", args[0]); ((Data) data).setAutoCommit(false); Iterator<Department> getDepartments = data.getDepartments(); Department bean = null; if (getDepartments.hasNext()) { bean = getDepartments.next(); ((ResultIterator<Department>) getDepartments).close(); } else { SampleUtil.println("Result set is empty."); ((Data) data).rollback(); return; } getDepartments = data.getDepartments(); SampleUtil.println("Results for getDepartments()"); SampleUtil.printAll(getDepartments); Department getDepartment = null; ((Data) data).commit(); } catch (Exception exp) { SampleUtil.println(exp.getMessage()); SampleUtil.println(exp.toString()); if (data != null) ((Data) data).rollback(); } finally { if (data != null) ((Data) data).close(); } } } }