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 dynamique.

La classe DepartmentDataTest montre comment accéder au tableau DEPARTMENT. Cette classe, qui a été générée par pureQuery, montre 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 newAnnot. La procédure mémorisée que vous créez à partir de cette méthode s'exécutera de façon dynamique car il n'y a pas de packages.

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("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