| Siguiente >

Lección 3: Examinar la interfaz generada InventoryLevelsData

La interfaz InventoryLevelsData es un objeto de Java™ reutilizable que pueden utilizar distintas aplicaciones para consultar y actualizar la tabla INVENTORY_LEVELS.
Esta lección detalla el contenido de esta interfaz.

Para ver la interfaz InventoryLevelsData que ha generado:

  1. Vaya al separador InventoryLevelsData.java situado en medio del panel
  2. Visualice las secciones de la clase. La clase tiene las siguientes secciones:
    Sección Java estándar
    La primera sección es estándar para una clase Java. Declara el paquete Java a la que pertenece la clase, contiene un comentario que describe la clase, importa clases de otros paquetes y declara el inicio de la clase. Fíjese en estas dos sentencias de importación:
    import com.ibm.pdq.annotation.Select;
    import com.ibm.pdq.annotation.Update;
    @Select and @Update son dos anotaciones que utiliza pureQuery en esta interfaz. Verá cómo lo hace brevemente.
    Métodos anotados
    Cuando finalizó el asistente Generar código pureQuery a partir de una tabla en la lección 1, especificó que pureQuery generara todas las sentencias SQL que pudiera. Por lo tanto, la interfaz contiene nueve sentencias SQL y declara nueve métodos. Cada método se anota con una sentencia SELECT, INSERT, UPDATE o DELETE:
    Métodos que se anotan con sentencias SELECT
    Los siguientes métodos utilizan anotaciones @Select.
    • Método getInventoryLevelss()
      El método getInventoryLevelss() devuelve un repetidor del bean de Niveles de inventario
      	// 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();
      Fíjese en que la anotación se denomina @Select y que contiene un atributo sql. Al utilizar la sentencia SELECT, coloque la sentencia en el atributo sql de esta anotación.
      Consejo: Al denominar el método, pureQuery prefija el nombre del bean con get. También añade automáticamente una S porque el método devuelve todos los bean posibles de InventoryLevels. Por lo tanto, la S extra en getInventoryLevelss() no es un error. Indica el plural del bean Inventory_level.
    • El método getInventoryLevels() coge campos individuales para una cláusula WHERE en la sentencia 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);
      Este método le permite pasar campos individuales para cada columna que comprende la clave primaria y están listan en la cláusula WHERE. Devuelve un único bean InventoryLevels con los resultados.
    • El método getInventoryLevels() coge una instancia del bean InventoryLevels como un parámetro
      	// 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);
      Este método le permite pasar un bean InventoryLevels que contiene los valores de las columnas de clave primaria que se encuentran en la cláusula WHERE. Devuelve un único bean InventoryLevels con los resultados.
    Métodos que se anotan con sentencias INSERT
    Los siguientes métodos utilizan anotaciones @Update.
    • El método createInventoryLevels coge campos individuales
      	// 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);
      Este método le permite pasar campos individuales para todas las columnas de la fila que desea insertar. Devuelve un valor 1 si la inserción es satisfactoria o un valor 0 si la inserción falla.
    • El método createInventoryLevels() coge una instancia del 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);
      Este método le permite pasar un bean InventoryLevels que contiene los valores de las columnas que se encuentran en la fila que desea insertar. Devuelve un valor 1 si la inserción es satisfactoria o un valor 0 si la inserción falla.
    Métodos que se anotan con sentencias UPDATE
    Los siguientes métodos utilizan anotaciones @Update.
    • El método updateInventoryLevels() coge campos individuales
      	// 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);
      Este método le permite pasar campos individuales para todas las columnas de la fila que desea actualizar. Devuelve un valor 1 si la actualización es satisfactoria o un valor 0 si la actualización falla.
    • El método updateInventoryLevels() coge una instancia del 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);
      Este método le permite pasar un bean InventoryLevels que contiene los valores de las columnas que se encuentran en la fila que desea actualizar. Devuelve un valor 1 si la actualización es satisfactoria o un valor 0 si la actualización falla.
    Métodos que se anotan con sentencias DELETE
    Los siguientes métodos utilizan anotaciones @Update.
    • El método deleteInventoryLevels() coge campos individuales
      	// 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);
      Este método le permite pasar campos individuales para todas las columnas de clave primaria de la fila que desea suprimir. Devuelve un valor 1 si la supresión es satisfactoria o un valor 0 si la supresión falla.
    • El método deleteInventoryLevels() coge una instancia del 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);
      Este método le permite pasar un bean InventoryLevels que contiene los valores de las columnas de clave primaria que se encuentran en la fila que desea suprimir. Devuelve un valor 1 si la supresión es satisfactoria o un valor 0 si la supresión falla.
Puede editar las sentencias SQL y añadir o eliminar métodos. En una lección posterior, obtendrá información sobre las características que hacen más fáciles la edición y las pruebas de las sentencias SQL.
| Siguiente >

Comentarios