Ejemplo de refactorización de pureQuery: método anotado que devuelve un parámetro

El código de este ejemplo muestra como refactorizar un método anotado que devuelve un parámetro en una aplicación pureQuery que se ejecuta dinámicamente.

La clase DepartmentDataTest muestra cómo acceder a la tabla DEPARTMENT. Esta clase, que pureQuery ha generado, muestra el estilo de programación de método anotado.

Puede crear un procedimiento almacenado de Java™ a partir del método newAnnot refactorizado. El procedimiento almacenado que cree a partir de este método se ejecutará dinámicamente porque no existen paquetes.

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

}

Comentarios