次のコード例には、main
の他に3つのメソッドが含まれています。
addRow
は、行を作成して列に値を入れ、DEPT表にその行を追加します。
主なメソッド: ViewObject.createRow
およびRow.setAttribute
deleteRow
は、DEPT表のデフォルト・ビューにWHERE句を追加し、問合せを実行してから、結果セット内の各行を削除します。
主なメソッド: ViewObject.removeCurrentRow
commitAndShowChanges
は、更新済の表を画面に表示するためのヘルパー・メソッドです。
package d2e;
import oracle.jbo.*;
import oracle.jbo.domain.Number;
public class RowsDemo {
public static void main(String[] args) {
// Helper routine connects to the generic application module.
ApplicationModule appMod =
QueryDemo.getGenericAppMod(JboContext.PLATFORM_LOCAL);
// Specify the Java file that defines the VO.
// Format: <package>
String voDefFile = "d2e.DeptView";
// Identify the view object. Must be a valid Java identifier.
String voName = "demoDeptVO";
// Create the view object within the context defined
// by the application module.
ViewObject vo = appMod.createViewObject(voName, voDefFile);
addRow(appMod, vo);
deleteRow(appMod, vo);
}
public static void addRow(ApplicationModule appMod, ViewObject vo) {
// Create a row and fill in the columns.
Row newRow = vo.createRow();
newRow.setAttribute("Deptno", new Number(14));
newRow.setAttribute("Dname", "Pubs");
newRow.setAttribute("Loc", "Honolulu");
vo.insertRow(newRow);
// Call a helper method.
commitAndShowChanges(appMod);
}
public static void deleteRow(ApplicationModule appMod, ViewObject vo) {
// Get row(s) to delete.
vo.setWhereClause(" deptno > 10 and deptno < 20 ");
// Delete row(s).
vo.executeQuery();
while (vo.hasNext()) {
vo.next();
vo.removeCurrentRow();
}
// Call a helper method.
commitAndShowChanges(appMod);
}
public static void commitAndShowChanges(ApplicationModule appMod) {
// Helper method to print updated table.
try {
appMod.getTransaction().commit();
}
catch (Exception e) {
System.out.println("\n Could not commit changes.");
System.exit(0);
}
// Define and execute a simple SQL statement.
String sqlStr = "select * from dept ";
String dumpClass = "oracle.jbo.server.QueryDumpTab";
String result = appMod.getTransaction().dumpQueryResult(sqlStr, dumpClass, null);
// Print updated table.
System.out.println(result);
}
}
dumpQueryResult()
メソッドの詳細は、「テストおよびデバッグ用のトランザクション・ユーティリティ・メソッドの使用」を参照してください。