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();
}
}
}