Exemple de restructuration pureQuery : méthode annotée renvoyant un paramètre

Le code illustré dans cet exemple montre comment restructurer une méthode annotée renvoyant un paramètre dans une application pureQuery exécutée de façon statique.

La classe DepartmentDataTest montre comment accéder au tableau DEPARTMENT. Cette classe, qui a été générée par pureQuery, présente le style de programmation méthode annotée.

Vous pouvez créer une procédure mémorisée Java à partir de la méthode restructurée newAnnotStatic. L'instruction myPdqProperties.put("pdq.executionMode", "STATIC"); dans cette méthode provoquera l'exécution statique de la procédure mémorisée que vous créez à partir de cette méthode.

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 newAnnotStatic(String[] s) throws SQLException,Exception {
    Connection con = DriverManager.getConnection("jdbc:default:connection");
    java.util.Properties myPdqProperties = new java.util.Properties();
    myPdqProperties.put("pdq.executionMode", "STATIC");
    DepartmentData d = DataFactory.getData(DepartmentData.class,
                   con,myPdqProperties);
 
    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("Tous les arguments requis n'ont pas été fournis.");
        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("L'ensemble de résultats est vide.");
        ((Data) data).rollback();
        return;
      }

      getDepartments = data.getDepartments();
      SampleUtil.println("Résultats pour 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();
    }
	}
}

}

Commentaires