Beispiel für pureQuery-Refactoring: mit Annotationen versehene Methode, die einen Parameter zurückgibt

Der Code in diesem Beispiel zeigt, wie ein Refactoring für eine mit Annotationen versehene Methode ausgeführt wird, die einen Parameter in einer dynamisch ausgeführten pureQuery-Anwendung zurückgibt.

Die Klasse DepartmentDataTest zeigt, wie auf die Tabelle DEPARTMENT zugegriffen wird. Diese von pureQuery generierte Klasse veranschaulicht den Programmierstil der mit Annotationen versehenen Methode.

Sie können über die Methode newAnnot, für die ein Refactoring ausgeführt wurde, eine gespeicherte Java-Prozedur erstellen. Die Prozedur, die Sie über diese Methode erstellen, wird dynamisch ausgeführt, weil keine Pakete vorliegen.

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 newAnnot(String[] s) throws SQLException,Exception {
    Connection con = DriverManager.getConnection("jdbc:default:connection");
      DepartmentData d = DataFactory.getData(DepartmentData.class, con);

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

}

Feedback