[ Foro de Java ]
OPERACIONES CRUD JAVA 1
DISCULPEN SE ENCUENTRAN BIEN ESTOS CODIGOS JAVA
Consulta
select
S.descripcion AS NOMBRE_PRODUCTO,
d.cantidad_prod as cantidad_solicitada,
d.precio_total_prod as precio_total
from
STOCK_PRODUCTOS S
join detalle_facturas d on( s.codigo = d.codigo_producto)
join facturas f on (f.codigo = d.codigo_factura)
where
d.codigo_factura='&consulta'
-------------------------------------------
//Inciso a
public int obtenerCantFacturasGeneradas() throws SQLException
{
//1. Conectar a la base de datos
this.iniciarConexionBD();
//2. Variable para almacenar el total de facturas almacenadas en la base de datos.
int cantFacturas = 0;
//------------------- COMPLETAR LA LÓGICA CORRESPONDIENTE ------------------------------------------------------------------------
//3. definir espacio de trabajo para la declaración y ejecución de la consulta sql
Statement stm = this.conexion.createStatement();
//4. Definir el texto String de la consulta SQL.
String sql = "SELECT count(*) as total_facturas from facturas";
//5. Ejecutar la consulta y amacenar en el objeto ResultSet
ResultSet tabla = stm.executeQuery(sql);
//6. Recorrer el objeto ResultSet mediante un while y para cada iteración resolver:
while(tabla.next())
{
//6.1 En la única iteración, obtener y alamcenar el dato de la cantidad de facturas que arrojó la consulta SQL
cantFacturas = tabla.getInt("total_facturas");
}
//----------------------------------------------------------------------------------------------------------------------------------
//7. Cerrar la conexion a la base de datos
this.cerrarConexionBD();
//8. Retornar el total de carreras que está almancenado en la base de datos
return cantFacturas;
}
BOTON INCISO A
private void jButton_mostrarCantFacturasActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//------- Implementar la lógica correspondiente -----------
OperacionesCRUD obj_BD = OperacionesCRUD.getInstance();
try
{
int cantFacturas = obj_BD.obtenerCantFacturasGeneradas();
String cant = String.valueOf(cantFacturas);
jTextField_cantFacturas.setText(cant);
}
catch(SQLException err)
{
System.out.println(err.getMessage());
}
//-----------------------------------------------------------------------------------
}
//Inciso b
public Vector<String> obtenerListadoNombresProductosStock() throws SQLException
{
//1. Conectar a la base de datos
this.iniciarConexionBD();
//2. Crear el vector para almacenar la lista de nombres de productos en stock resultante de la consulta SQL a la base de datos.
Vector<String> listadoNombresProductosStock = new Vector<>();
//------------------- COMPLETAR LA LÓGICA CORRESPONDIENTE ----------------------------------------------------------------------------------------
//3. definir espacio de trabajo para la declaración y ejecución de la consulta sql
Statement stm = this.conexion.createStatement();
//4. Definir el texto String de la consulta SQL.
String sql = "SELECT descripcion as \"Nombre de Producto\" FROM stock_productos";
//5. Ejecutar la consulta y amacenar en el objeto ResultSet
ResultSet tabla = stm.executeQuery(sql);
//6. Recorrer el objeto ResultSet mediante un while y para cada iteración resolver:
//En cada iteración:
while(tabla.next())
{
//6.1. Obtener el nombre del producto de la fila actual del objeto ResultSet
String valorColumna = tabla.getString("Nombre de Producto");
//6.2. Almacenar en el vector creado en el paso 2. el valor de nombre de producto de la fila actual del objeto ResultSet
listadoNombresProductosStock.add(valorColumna);
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
//7. Cerrar la conexion a la base de datos
this.cerrarConexionBD();
//8. Retornar el objeto vector con la lista de nombres de carreras almacenados en la base de datos
return listadoNombresProductosStock;
}
//BOTON INICISO B
private void jButton_mostrarListadoProductosStockActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//------- Implementar la lógica correspondiente --------------------------
//1. Obtener la instancia única objeto de la clase OperacionesCRUD
OperacionesCRUD obj_BD = OperacionesCRUD.getInstance();
try
{
//2. Obtener el vector lista con los códigos de facturas del método que consulta a la BD y que implementa el objeto obj_BD (OperacionesCRUD)
Vector<String> listadoNombresProductosStock = obj_BD.obtenerListadoNombresProductosStock();
//3. Crear el objeto DefaultTableModel del jTable_ListadoNombresProductosStock que debe mostrar el vector lista de códigos de facturas
DefaultTableModel tablaVisual = (DefaultTableModel) jTable_ListadoNombresProductosStock.getModel();
//4. Setear el componente jTable_ListadoNombresProductosStock, desde el objeto DefaultTableModel, con cero filas y cero columnas de datos a mostrar.
tablaVisual.setRowCount(0);
tablaVisual.setColumnCount(0);
//5. Agregar, desde el objeto DefaultTableModel, la columna de datos con cabecera "Descripcion Productos en Stock" y vector lista de datos con los códgios de las facturas generadas.
tablaVisual.addColumn("Descripcion Productos en Stock",listadoNombresProductosStock );
}
catch(SQLException err)
{
err.printStackTrace();
}
//----------------------------------------------------------------------------------------------------------------------------------------
}
//Inciso c
public ArrayList<Vector<String>> obtenerDetallesProductosXFactura(String pCodigoFactura) throws SQLException
{
//1. Conectar a la base de datos
this.iniciarConexionBD();
//2. Crear la matriz de datos para almacenar el detalle de los productos de la factura segun la consulta SQL, cada fila es un Vector de String
ArrayList<Vector<String>> matrizDetallesProductosFactura = new ArrayList<>();
//------------------- COMPLETAR LA LÓGICA CORRESPONDIENTE ----------------------------------------------------------------------------------------
//3. definir espacio de trabajo para la declaración y ejecución de la consulta sql
Statement stm = this.conexion.createStatement();
//4. Definir el texto String de la consulta SQL.
String sql = "SELECT S.DESCRIPCION as \"DESCRIPCION DE PRODUCTO\", D.cantidad_prod as \"Cantidad Solicitada\", D.precio_total_prod as \"Precio total del Producto\"\n" +
"FROM DETALLE_FACTURAS D JOIN stock_productos S ON( S.codigo = D.codigo_producto)\n" +
"WHERE D.CODIGO_FACTURA = '"+pCodigoFactura+"'";
//5. Ejecutar la consulta y amacenar en el objeto ResultSet
ResultSet tabla = stm.executeQuery(sql);
//6. Recorrer el objeto ResultSet mediante un while y para cada iteración resolver:
//En cada iteración:
while(tabla.next())
{
//6. Crear el Vector fila para almacenar los datos de cada fila según los campos de columnas de la consulta SQL.
Vector filaDatos = new Vector <>();
//6.1 Agregar al vector fila el dato del campo descripcion de la consulta SQL
String Descripcion_Producto = tabla.getString("DESCRIPCION DE PRODUCTO");
//6.2 Agregar al vector fila el dato del campo cantidad_prod de la consulta SQL
String Cantidad_Producto = tabla.getString("Cantidad Solicitada");
//6.3 Agregar al vector fila el dato del campo precio_total_prod de la consulta SQL
String Precio_Producto = tabla.getString("Precio total del Producto");
//6.4 Agregar el ventor fila, con los datos de las tres columnas de la consulta SQL, a la tabla matriz de datos.
filaDatos.add(Descripcion_Producto);
filaDatos.add(Cantidad_Producto);
filaDatos.add(Precio_Producto);
matrizDetallesProductosFactura.add(filaDatos);
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
//7. Cerrar la conexion a la base de datos
this.cerrarConexionBD();
//8. Retornar la matriz de datos con los resultados de la consulta SQL.
return matrizDetallesProductosFactura;
}
}
//BOTON INCISO C
private void jButton_mostrarDetallesFacturaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//------- Implementar la lógica correspondiente ---------------------------
//1. Obtener la instancia única objeto de la clase OperacionesCRUD
OperacionesCRUD obj_BD = OperacionesCRUD.getInstance();
//2. Obtener la lista de valores del modelo del jComboBox_listadoCodigosFacturas con los datos de códigos de las facturas generadas.
DefaultComboBoxModel<String> recordList_Carr_Est = (DefaultComboBoxModel)jComboBox_listadoCodigosFacturas.getModel();
//3. Obtener el código de factura seleccionado desde el combobox jComboBox_listadoCodigosFacturas
String codigo = (String) recordList_Carr_Est.getSelectedItem();
try
{
//4. Obtener la matriz de datos del detalle de productos de la factura que devuelve el método que consulta a la BD y que implementa el objeto obj_BD (OperacionesCRUD)
ArrayList<Vector<String>> matrizDetallesProductosFactura = obj_BD.obtenerDetallesProductosXFactura(codigo);
//5. Crear el objeto DefaultTableModel del jTable_detallesProductosFactura que debe mostrar la matriz de datos del detalle de la factura seleccionada para filtrar.
DefaultTableModel tablaVisual = (DefaultTableModel) jTable_detallesProductosFactura.getModel();
//6. Setear, desde el objeto DefaultTableModel, el componente jTable_detallesProductosFactura con cero filas a mostrar.
tablaVisual.setRowCount(0);
//7. Obtener la cantidad de filas que arroja la consulta a la base de datos almacenada en la matriz de datos.
int total = matrizDetallesProductosFactura.size();
//8. Recorrer cada fila de la matriz de datos con el detalle de productos de la factura y para cada iteración resolver:
for (int i=0; i<total; i++){
//8.1 En cada iteración, agregar al jTable_detallesProductosFactura, desde el objeto DefaultTableModel, los datos de cada una de las filas que están almacenadas en la matriz de datos.
Vector Fila = (Vector) matrizDetallesProductosFactura.get(i);
tablaVisual.addRow(Fila);
}
}
catch(SQLException err)
{
err.printStackTrace();
}
}