| Weiter >

Lerneinheit 3: Generierte InventoryLevelsData-Schnittstelle prüfen

Die InventoryLevelsData-Schnittstelle ist ein wiederverwendbares Java™-Objekt, das von mehreren Anwendungen für die Abfrage und Aktualisierung der Tabelle INVENTORY_LEVELS verwendet werden kann.
In dieser Lerneinheit wird der Inhalt dieser Schnittstelle ausführlich beschrieben.

Gehen Sie wie folgt vor, um die von Ihnen generierte InventoryLevelsData-Schnittstelle anzuzeigen:

  1. Rufen Sie die Registerkarte InventoryLevelsData.java im mittleren Teilfenster auf.
  2. Sehen Sie sich die Abschnitte der Klasse an. Die Klasse weist die folgenden Abschnitte auf:
    Java-Standardabschnitt
    Der erste Abschnitt ist der Standardabschnitt für eine Java-Klasse. Er deklariert das Java-Paket, zu dem die Klasse gehört, enthält einen Kommentar, der die Klasse beschreibt, importiert Klassen aus anderen Paketen und deklariert diesen Start der Klasse. Beachten Sie die zwei folgenden Importanweisungen:
    import com.ibm.pdq.annotation.Select;
    import com.ibm.pdq.annotation.Update;
    @Select und @Update sind zwei Annotationen, die pureQuery in dieser Schnittstelle verwendet. Die Art der Verwendung wird später erläutert.
    Mit Annotationen versehene Methoden
    Wenn Sie den Assistenten pureQuery-Code aus Tabelle generieren in Lerneinheit 1 beendet haben, wurde von Ihnen angegeben, dass pureQuery alle möglichen SQL-Anweisungen generieren soll. Die Schnittstelle enthält deshalb neun SQL-Anweisungen und deklariert neun Methoden. Jede Methode weist eine Anweisung SELECT, INSERT, UPDATE oder DELETE als Annotation auf:
    Methoden, die Anweisungen SELECT als Annotationen aufweisen
    Die folgenden Methoden verwenden @Select-Annotationen.
    • Methode getInventoryLevelss()
      Die Methode getInventoryLevelss() gibt einen Iterator der Lagerbestandsbean (Inventory Levels) zurück.
      	// 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();
      Beachten Sie, dass die Annotation den Namen @Select aufweist und ein SQL-Attribut enthält. Wenn Sie eine Anweisung SELECT verwenden, stellen Sie die Anweisung in das SQL-Attribut dieser Annotation.
      Tipp: Bei der Benennung der Methode stellt pureQuery dem Namen der Bean die Zeichenfolge get als Präfix voran. Es fügt auch automatisch den Buchstaben S hinzu, da die Methode alle möglichen InventoryLevels-Beans zurückgibt. Das zusätzliche S in getInventoryLevelss() ist daher kein Schreibfehler. Es gibt den Plural der Bean Inventory_level an.
    • Die Methode getInventoryLevels() akzeptiert einzelne Felder für eine Klausel WHERE in der Anweisung 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);
      Mit dieser Methode können Sie einzelne Felder für alle Spalten übergeben, aus denen sich der Primärschlüssel zusammensetzt und die in der Klausel WHERE aufgelistet werden. Sie gibt eine einzelne InventoryLevels-Bean mit den Ergebnissen zurück.
    • Die Methode getInventoryLevels() akzeptiert eine Instanz der InventoryLevels-Bean als Parameter.
      	// 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);
      Diese Methode ermöglicht die Übergabe einer InventoryLevels-Bean mit den Werten der Primärschlüsselspalten, die in der Klausel WHERE enthalten sind. Sie gibt eine einzelne InventoryLevels-Bean mit den Ergebnissen zurück.
    Methoden, die Anweisungen INSERT als Annotationen aufweisen
    Die folgenden Methoden verwenden @Update-Annotationen.
    • Die Methode createInventoryLevels akzeptiert einzelne Felder
      	// 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);
      Diese Methode ermöglicht die Übergabe einzelner Felder für alle Spalten in der einzufügenden Zeile. Dabei wird der Wert 1 zurückgegeben, wenn die Einfügung erfolgreich war und der Wert 0, wenn die Einfügung fehlgeschlagen ist.
    • Die Methode createInventoryLevels() akzeptiert eine Instanz der InventoryLevels-Bean
      	// 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);
      Diese Methode ermöglicht die Übergabe einer InventoryLevels-Bean mit den Werten der Spalten, die sich in der einzufügenden Zeile befinden. Dabei wird der Wert 1 zurückgegeben, wenn die Einfügung erfolgreich war und der Wert 0, wenn die Einfügung fehlgeschlagen ist.
    Methoden, die Anweisungen UPDATE als Annotationen aufweisen
    Die folgenden Methoden verwenden @Update-Annotationen.
    • Die Methode updateInventoryLevels() akzeptiert einzelne Felder
      	// 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);
      Diese Methode ermöglicht die Übergabe einzelner Felder für alle Spalten in der zu aktualisierenden Zeile. Dabei wird der Wert 1 zurückgegeben, wenn die Aktualisierung erfolgreich war und der Wert 0, wenn die Aktualisierung fehlgeschlagen ist.
    • Die Methode updateInventoryLevels() akzeptiert eine Instanz der InventoryLevels-Bean
      	// 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);
      Diese Methode ermöglicht die Übergabe einer InventoryLevels-Bean mit den Werten der Spalten, die sich in der zu aktualisierenden Zeile befinden. Dabei wird der Wert 1 zurückgegeben, wenn die Aktualisierung erfolgreich war und der Wert 0, wenn die Aktualisierung fehlgeschlagen ist.
    Methoden, die Anweisungen DELETE als Annotationen aufweisen
    Die folgenden Methoden verwenden @Update-Annotationen.
    • Die Methode deleteInventoryLevels() akzeptiert einzelne Felder
      	// 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);
      Diese Methode ermöglicht die Übergabe einzelner Felder für alle Primärschlüsselspalten in der zu löschenden Zeile. Dabei wird der Wert 1 zurückgegeben, wenn die Löschung erfolgreich war und der Wert 0, wenn die Löschung fehlgeschlagen ist.
    • Die Methode deleteInventoryLevels() akzeptiert eine Instanz der InventoryLevels-Bean
      	// 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);
      Diese Methode ermöglicht die Übergabe einer InventoryLevels-Bean mit den Werten der Primärschlüsselspalten, die sich in der zu löschenden Zeile befinden. Dabei wird der Wert 1 zurückgegeben, wenn die Löschung erfolgreich war und der Wert 0, wenn die Löschung fehlgeschlagen ist.
Sie können die SQL-Anweisungen bearbeiten und Methoden hinzufügen oder entfernen. In einer späteren Lerneinheit werden Features beschrieben, die die Bearbeitung und das Testen von SQL-Anweisungen vereinfachen.
| Weiter >

Feedback