| Suivant >

Leçon 3 : examen de l'interface InventoryLevelsData générée

L'interface InventoryLevelsData est un objet Java réutilisable que différentes applications peuvent utiliser pour interroger et mettre à jour la table INVENTORY_LEVELS.
Cette leçon détaille le contenu de cette interface.

Pour accéder à l'interface InventoryLevelsData générée, procédez comme suit :

  1. Ouvrez l'onglet InventoryLevelsData.java dans le panneau central
  2. Consultez les sections de la classe. La classe présente les sections suivantes :
    Section Java standard
    La première section est une section standard dédiée à une classe Java. Elle déclare le package Java auquel appartient la classe, contient un commentaire décrivant la classe, importe les classes d'autres packages et déclare le lancement de la classe. Notez ces deux instructions d'importation :
    import com.ibm.pdq.annotation.Select;
    import com.ibm.pdq.annotation.Update;
    @Select et @Update sont deux annotations utilisées par pureQuery dans cette interface. Vous découvrirez comment d'ici peu.
    Méthodes annotées
    Dans l'assistant Génération de code pureQuery à partir d'une table de la leçon 1, vous avez indiqué que pureQuery devait générer toutes les instructions SQL possibles. L'interface contient donc neuf instructions SQL et déclare neuf méthodes. Chaque méthode est annotée avec une instruction SELECT, INSERT, UPDATE ou DELETE :
    Méthodes annotées avec des instructions SELECT
    Les méthodes suivantes utilisent les annotations @Select.
    • La méthode getInventoryLevelss()
      La méthode getInventoryLevelss() retourne un itérateur du bean Inventory Levels.
      	// Select all GOSALES.INVENTORY_LEVELSs
      	@Select(sql = "SELECT INVENTORY_YEAR, INVENTORY_MONTH, WAREHOUSE_BRANCH_CODE,"
      	               + "  PRODUCT_NUMBER, OPENING_INVENTORY, QUANTITY_SHIPPED, ADDITIONS,"
      	               + "  UNIT_COST, CLOSING_INVENTORY, AVERAGE_UNIT_COST"
      	               + "  FROM GOSALES.INVENTORY_LEVELS")
      	Iterator<InventoryLevels> getInventoryLevelss();
      Veuillez noter que l'annotation est nommée @Select et qu'elle contient un attribut SQL. Lorsque vous utilisez une instruction SELECT, placez l'instruction dans l'attribut SQL de cette annotation.
      Conseil : Lors de la désignation de la méthode, pureQuery fait précéder le nom du bean de get. De plus, pureQuery ajoute automatiquement la lettre S car la méthode retourne tous les beans InventoryLevels possibles. La lettre S supplémentaire dans getInventoryLevelss() n'est donc pas une erreur typographique, mais indique le pluriel de bean Inventory_level.
    • La méthode getInventoryLevels() utilise des zones individuelles pour une clause WHERE dans l'instruction SELECT.
      	// Select GOSALES.INVENTORY_LEVELS by parameters
      	@Select(sql = "SELECT INVENTORY_YEAR, INVENTORY_MONTH, WAREHOUSE_BRANCH_CODE,"
      	               + "  PRODUCT_NUMBER, OPENING_INVENTORY, QUANTITY_SHIPPED, ADDITIONS,"
      	               + "  UNIT_COST, CLOSING_INVENTORY, AVERAGE_UNIT_COST"
      	               + "  FROM GOSALES.INVENTORY_LEVELS"
      	               + "  WHERE INVENTORY_YEAR = ? AND INVENTORY_MONTH = ? AND WAREHOUSE_BRANCH_CODE = ?"
      	               + "    AND PRODUCT_NUMBER = ?")
      	InventoryLevels getInventoryLevels(short inventoryYear,
      			short inventoryMonth, int warehouseBranchCode, int productNumber);
      Cette méthode vous permet de transmettre des zones individuelles pour chacune des colonnes comprenant la clé primaire et répertoriées dans la clause WHERE. Elle retourne un bean InventoryLevels avec les résultats.
    • La méthode getInventoryLevels() utilise une instance du bean InventoryLevels comme paramètre.
      	// Select GOSALES.INVENTORY_LEVELS by InventoryLevels object
      	@Select(sql = "SELECT INVENTORY_YEAR, INVENTORY_MONTH, WAREHOUSE_BRANCH_CODE,"
      	               + "  PRODUCT_NUMBER, OPENING_INVENTORY, QUANTITY_SHIPPED, ADDITIONS,"
      	               + "  UNIT_COST, CLOSING_INVENTORY, AVERAGE_UNIT_COST"
      	               + "  FROM GOSALES.INVENTORY_LEVELS"
      	               + "  WHERE INVENTORY_YEAR = :inventoryYear AND INVENTORY_MONTH = :inventoryMonth"
      	               + "    AND WAREHOUSE_BRANCH_CODE = :warehouseBranchCode"
      	               + "    AND PRODUCT_NUMBER = :productNumber")
      	InventoryLevels getInventoryLevels(InventoryLevels i);
      Cette méthode vous permet de transmettre un bean InventoryLevels contenant les valeurs des colonnes de clé primaire figurant dans la clause WHERE. Elle retourne un bean InventoryLevels avec les résultats.
    Méthodes annotées avec des instructions INSERT
    Les méthodes suivantes utilisent les annotations @Update.
    • La méthode createInventoryLevels utilise des zones individuelles.
      	// Create GOSALES.INVENTORY_LEVELS by parameters
      	@Update(sql = "INSERT INTO GOSALES.INVENTORY_LEVELS (INVENTORY_YEAR, INVENTORY_MONTH,"
      	               + "  WAREHOUSE_BRANCH_CODE, PRODUCT_NUMBER, OPENING_INVENTORY, QUANTITY_SHIPPED,"
      	               + "  ADDITIONS, UNIT_COST, CLOSING_INVENTORY, AVERAGE_UNIT_COST)"
      	               + "  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
      	int createInventoryLevels(short inventoryYear, short inventoryMonth,
      			int warehouseBranchCode, int productNumber, int openingInventory,
      			int quantityShipped, int additions, BigDecimal unitCost,
      			int closingInventory, BigDecimal averageUnitCost);
      Cette méthode vous permet de transmettre des zones individuelles pour toutes les colonnes dans la ligne que vous voulez insérer. Elle retourne la valeur 1 si l'insertion s'est correctement déroulée et la valeur 0 en cas d'échec de l'insertion.
    • La méthode createInventoryLevels() utilise une instance du bean InventoryLevels.
      	// Create GOSALES.INVENTORY_LEVELS by InventoryLevels Object
      	@Update(sql = "INSERT INTO GOSALES.INVENTORY_LEVELS (INVENTORY_YEAR, INVENTORY_MONTH,"
      	               + "  WAREHOUSE_BRANCH_CODE, PRODUCT_NUMBER, OPENING_INVENTORY, QUANTITY_SHIPPED,"
      	               + "  ADDITIONS, UNIT_COST, CLOSING_INVENTORY, AVERAGE_UNIT_COST)"
      	               + "  VALUES (:inventoryYear, :inventoryMonth, :warehouseBranchCode,"
      	               + "    :productNumber, :openingInventory, :quantityShipped, :additions,"
      	               + "    :unitCost, :closingInventory, :averageUnitCost)")
      	int createInventoryLevels(InventoryLevels i);
      Cette méthode vous permet de transmettre un bean InventoryLevels contenant les valeurs des colonnes figurant dans la ligne que vous voulez insérer. Elle retourne la valeur 1 si l'insertion s'est correctement déroulée et la valeur 0 en cas d'échec de l'insertion.
    Méthodes annotées avec des instructions UPDATE
    Les méthodes suivantes utilisent les annotations @Update.
    • La méthode updateInventoryLevels() utilise des zones individuelles.
      	// Update GOSALES.INVENTORY_LEVELS by parameters
      	@Update(sql = "UPDATE GOSALES.INVENTORY_LEVELS"
      	               + "  SET INVENTORY_YEAR = ?, INVENTORY_MONTH = ?, WAREHOUSE_BRANCH_CODE = ?,"
      	               + "      PRODUCT_NUMBER = ?, OPENING_INVENTORY = ?, QUANTITY_SHIPPED = ?,"
      	               + "      ADDITIONS = ?, UNIT_COST = ?, CLOSING_INVENTORY = ?, AVERAGE_UNIT_COST = ?"
      	               + "  WHERE INVENTORY_YEAR = ? AND INVENTORY_MONTH = ? AND WAREHOUSE_BRANCH_CODE = ?"
      	               + "    AND PRODUCT_NUMBER = ?")
      	int updateInventoryLevels(short inventoryYear, short inventoryMonth,
      			int warehouseBranchCode, int productNumber, int openingInventory,
      			int quantityShipped, int additions, BigDecimal unitCost,
      			int closingInventory, BigDecimal averageUnitCost,
      			short inventoryYear_K, short inventoryMonth_K,
      			int warehouseBranchCode_K, int productNumber_K);
      Cette méthode vous permet de transmettre des zones individuelles pour toutes les colonnes dans la ligne que vous voulez mettre à jour. Elle retourne la valeur 1 si la mise à jour s'est correctement déroulée et la valeur 0 en cas d'échec de la mise à jour.
    • La méthode updateInventoryLevels() utilise une instance du bean InventoryLevels.
      	// Update one GOSALES.INVENTORY_LEVELS by InventoryLevels object
      	@Update(sql = "UPDATE GOSALES.INVENTORY_LEVELS"
      	               + "  SET OPENING_INVENTORY = :openingInventory, QUANTITY_SHIPPED = :quantityShipped,"
      	               + "      ADDITIONS = :additions, UNIT_COST = :unitCost, CLOSING_INVENTORY = :closingInventory,"
      	               + "      AVERAGE_UNIT_COST = :averageUnitCost"
      	               + "  WHERE INVENTORY_YEAR = :inventoryYear AND INVENTORY_MONTH = :inventoryMonth"
      	               + "    AND WAREHOUSE_BRANCH_CODE = :warehouseBranchCode"
      	               + "    AND PRODUCT_NUMBER = :productNumber")
      	int updateInventoryLevels(InventoryLevels i);
      Cette méthode vous permet de transmettre un bean InventoryLevels contenant les valeurs des colonnes figurant dans la ligne que vous voulez mettre à jour. Elle retourne la valeur 1 si la mise à jour s'est correctement déroulée et la valeur 0 en cas d'échec de la mise à jour.
    Méthodes annotées avec des instructions DELETE
    Les méthodes suivantes utilisent les annotations @Update.
    • La méthode deleteInventoryLevels() utilise des zones individuelles.
      	// Delete GOSALES.INVENTORY_LEVELS by parameters
      	@Update(sql = "DELETE FROM GOSALES.INVENTORY_LEVELS"
      	               + " WHERE INVENTORY_YEAR = ? AND INVENTORY_MONTH = ? AND WAREHOUSE_BRANCH_CODE = ?"
      	               + "    AND PRODUCT_NUMBER = ?")
      	int deleteInventoryLevels(short inventoryYear, short inventoryMonth,
      			int warehouseBranchCode, int productNumber);
      Cette méthode vous permet de transmettre des zones individuelles pour toutes les colonnes de clé primaire dans la ligne que vous voulez supprimer. Elle retourne la valeur 1 si la suppression s'est correctement déroulée et la valeur 0 en cas d'échec de la suppression.
    • La méthode deleteInventoryLevels() utilise une instance du bean InventoryLevels.
      	// Delete one GOSALES.INVENTORY_LEVELS by InventoryLevels object
      	@Update(sql = "DELETE FROM GOSALES.INVENTORY_LEVELS"
      	               + " WHERE INVENTORY_YEAR = :inventoryYear AND INVENTORY_MONTH = :inventoryMonth"
      	               + "    AND WAREHOUSE_BRANCH_CODE = :warehouseBranchCode"
      	               + "    AND PRODUCT_NUMBER = :productNumber")
      	int deleteInventoryLevels(InventoryLevels i);
      Cette méthode vous permet de transmettre un bean InventoryLevels contenant les valeurs des colonnes de clé primaire figurant dans la ligne que vous voulez supprimer. Elle retourne la valeur 1 si la suppression s'est correctement déroulée et la valeur 0 en cas d'échec de la suppression.
Vous pouvez éditer les instructions SQL et ajouter ou supprimer des méthodes. Vous découvrirez les fonctions facilitant l'édition et le test des instructions SQL dans une autre leçon.
| Suivant >

Commentaires