DepartmentInlineSample 클래스는 DEPARTMENT 테이블에 인라인으로 액세스하는 방법을 보여줍니다. pureQuery에 의해 생성되는 이 클래스는 인라인 메소드 스타일의 프로그래밍을 보여주며 CREATE, INSERT, UPDATE 및 DELETE문에 대한 샘플과 제안을 포함하고 있습니다.
리팩토링된 newInline 메소드를 사용하여 Java™ 스토어드 프로시저를 작성할 수 있습니다.
package INLINE; // Imports import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Iterator; import com.ibm.pdq.runtime.Data; import pureQuery.example.SampleUtil; import com.ibm.pdq.runtime.ResultIterator; import com.ibm.pdq.runtime.factory.DataFactory; import java.sql.*; public class DepartmentInlineSample { public static void newInline(ResultSet[] rs) throws SQLException,Exception{ Connection con = DriverManager.getConnection("jdbc:default:connection"); Data d = DataFactory.getData(con); rs[0] = d.queryResults( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT"); } public static Data db = null; /** * @param args */ public static void main(String[] args) { try { if (args.length < 1) { SampleUtil.println("All required arguments were not provided."); return; } db = SampleUtil.getData( "jdbc:db2://iicriollo3.svl.ibm.com:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;", "db2admin", args[0]); db.setAutoCommit(false); Iterator<Department> getDepartments = db.queryIterator( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT", Department.class); Department bean = null; if (getDepartments.hasNext()) { bean = getDepartments.next(); ((ResultIterator<Department>) getDepartments).close(); } else { SampleUtil.println("Result set is empty."); db.rollback(); return; } Department getDepartment = db.queryFirst( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT" + " WHERE DEPTNO = :deptno", Department.class, bean); SampleUtil.printClass(getDepartment); db.update( "UPDATE DEPARTMENT" + " SET DEPTNO = :deptno, DEPTNAME = :deptname, MGRNO = :mgrno," + " ADMRDEPT = :admrdept, LOCATION = :location" + " WHERE DEPTNO = :deptno", bean); getDepartments = db.queryIterator( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT", Department.class); SampleUtil.println("Results for update (bean)"); SampleUtil.printAll(getDepartments); db.update("DELETE FROM DEPARTMENT" + " WHERE DEPTNO = :deptno", bean); getDepartments = db.queryIterator( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT", Department.class); SampleUtil.println("Results for - delete (?)"); SampleUtil.printAll(getDepartments); db.update( "INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION)" + " VALUES (:deptno, :deptname, :mgrno, :admrdept, :location)", bean); getDepartments = db.queryIterator( "SELECT DEPTNO, DEPTNAME, MGRNO, ADMRDEPT, LOCATION" + " FROM DEPARTMENT", Department.class); SampleUtil.println("Results for - insert (bean)"); SampleUtil.printAll(getDepartments); db.commit(); } catch (Exception exp) { SampleUtil.println(exp.getMessage()); SampleUtil.println(exp.toString()); if (db != null) db.rollback(); } finally { if (db != null) db.close(); } } }