0% encontró este documento útil (0 votos)
0 vistas6 páginas

Java Unidad 27

Proyecto integrador, estructura, fases y ejemplos del JDBC

Cargado por

eventosgenuinos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas6 páginas

Java Unidad 27

Proyecto integrador, estructura, fases y ejemplos del JDBC

Cargado por

eventosgenuinos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Unidad 27

Proyecto Integrador y
Evaluación Final de JDBC
Contenidos

1. Descripción del Proyecto Integrador 3


2. Estructura y Fases del Proyecto 3
3. Ejemplo Práctico Integrado 4
4. Test de Autoevaluación 7
27. Proyecto Integrador y Evaluación Final de JDBC

27. Proyecto Integrador y Evaluación Final de JDBC

1. Descripción del Proyecto Integrador

El proyecto consiste en desarrollar una aplicación Java para la gestión de un inventario de productos. La aplicación
deberá incluir las siguientes funcionalidades:

• Operaciones CRUD:

Permitir la creación, lectura, actualización y eliminación de registros en una tabla de productos (por ejemplo,
con campos como id, nombre, cantidad y precio).

• Gestión de Transacciones:

Realizar operaciones que impliquen múltiples sentencias SQL (por ejemplo, al realizar una venta que disminuya
el stock y registre la transacción) de forma atómica, utilizando commit y rollback según el resultado de las operaciones.

• Batch Processing:

Implementar inserciones o actualizaciones masivas en el inventario mediante batch processing para optimizar
el rendimiento.

• Uso de CallableStatement:

Invocar un procedimiento almacenado (por ejemplo, uno que reajuste el precio de todos los productos de una
categoría) para encapsular lógica de negocio en la base de datos.

• Pooling de Conexiones:

Integrar un pool de conexiones (por ejemplo, mediante HikariCP) para gestionar de forma eficiente el acceso
concurrente a la base de datos.

• Buenas Prácticas de Seguridad:

Utilizar PreparedStatement para evitar inyección SQL, gestionar de forma segura las credenciales y, en su
caso, emplear conexiones cifradas (SSL).

2. Estructura y Fases del Proyecto

2.1. Planificación y Diseño

• Definir Requerimientos:Identificar las operaciones que realizará la aplicación (registro de productos, actualización de
stock, eliminación, consultas de inventario, etc.).
• Diseño de la Base de Datos:Crear la estructura de la tabla productos y, si se requiere, definir procedimientos alma-
cenados para operaciones complejas.
• Diagrama de Flujo:Elaborar un diagrama que muestre cómo se integran las distintas operaciones (por ejemplo, flujo
de una venta o una actualización masiva de precios).

3
27. Proyecto Integrador y Evaluación Final de JDBC

2.2. Implementación

• Configuración del Pool de Conexiones:Inicializar HikariCP u otra herramienta de pooling en una clase de configura-
ción.
• Módulo de Conexión y Operaciones CRUD:Desarrollar clases que gestionen la conexión a la base de datos y que
implementen métodos para cada operación CRUD utilizando PreparedStatement.
• Implementación de Transacciones y Batch Processing:Integrar operaciones que requieran múltiples sentencias SQL
dentro de una misma transacción y agrupar operaciones repetitivas mediante batch processing.
• Invocación de Procedimientos Almacenados:Implementar métodos que utilicen CallableStatement para llamar
a procedimientos almacenados predefinidos en la base de datos.

2.3. Pruebas y Validación

• Pruebas Unitarias y de Integración:Utilizar frameworks de testeo (como JUnit) para validar cada funcionalidad, ase-
gurándose de que las operaciones se ejecuten correctamente y que las transacciones se confirmen o reviertan
según corresponda.
• Pruebas de Rendimiento:Evaluar el impacto de batch processing y pooling en escenarios con alta concurrencia.

2.4. Despliegue y Mantenimiento

• Documentación del Código:Incluir comentarios y documentación que expliquen la lógica de cada módulo y las deci-
siones de diseño.
• Plan de Mantenimiento:Establecer un plan para actualizar y optimizar la aplicación conforme evolucionen los reque-
rimientos o se detecten incidencias.

3. Ejemplo Práctico Integrado

A continuación se presenta un fragmento de código que ilustra la integración de varios conceptos (pooling, operaciones
CRUD, transacciones y batch processing). Este ejemplo se centra en la inserción de múltiples productos en la base de
datos utilizando HikariCP y batch processing.

4
27. Proyecto Integrador y Evaluación Final de JDBC

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
// Clase Producto para representar cada registro
class Producto {
private String nombre;
private int cantidad;
private double precio;
public Producto(String nombre, int cantidad, double precio) {
[Link] = nombre;
[Link] = cantidad;
[Link] = precio;
}
public String getNombre() { return nombre; }
public int getCantidad() { return cantidad; }
public double getPrecio() { return precio; }
}
public class InventarioDAO {
private static HikariDataSource dataSource;
// Configuración del pool de conexiones con HikariCP
static {
HikariConfig config = new HikariConfig();
[Link](“jdbc:mysql://localhost:3306/inventario_db”);
[Link](“usuario”);
[Link](“contrasena”);
[Link](10);
[Link](2);
dataSource = new HikariDataSource(config);
}
// Método para insertar múltiples productos mediante batch processing
public void insertarProductosBatch(List<Producto> productos) {
String sql = “INSERT INTO productos (nombre, cantidad, precio) VAL-
UES (?, ?, ?)”;
try (Connection conn = [Link]();
PreparedStatement pstmt = [Link](sql)) {
[Link](false); // Iniciar transacción
for (Producto prod : productos) {
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, [Link]());

5
27. Proyecto Integrador y Evaluación Final de JDBC

[Link]();
}
int[] resultados = [Link]();
[Link](); // Confirmar transacción
[Link](“Batch ejecutado. Registros insertados: “ +
[Link]);
} catch (SQLException e) {
[Link](“Error en la inserción masiva: “ + [Link]-
Message());
// En un escenario real se implementaría rollback y manejo de
excepciones más detallado.
}
}
// Se pueden implementar otros métodos: actualizar, eliminar, consultar,
invocar procedimientos almacenados, etc.
public static void main(String[] args) {
InventarioDAO dao = new InventarioDAO();
List<Producto> nuevosProductos = [Link](
new Producto(“Laptop”, 10, 899.99),
new Producto(“Mouse”, 50, 19.99),
new Producto(“Teclado”, 30, 49.99)
);
[Link](nuevosProductos);
}
}

• Descripción del Ejemplo:Este fragmento de código configura un pool de conexiones mediante HikariCP y define un
método que inserta una lista de productos en la tabla productos utilizando batch processing y una transacción
controlada (autocommit desactivado). La integración de estas técnicas asegura que la operación sea eficiente y
que, en caso de error, se puedan gestionar los fallos adecuadamente (por ejemplo, realizando un rollback).

6
27. Proyecto Integrador y Evaluación Final de JDBC

4. Test de Autoevaluación

1. Planificación del Proyecto:

• Describe las fases esenciales para el desarrollo del proyecto integrador de acceso a bases de datos con JDBC y
justifica la importancia de cada fase.

2. Operaciones CRUD y Transacciones:

• Explica cómo se gestionan las transacciones en una aplicación JDBC y por qué es fundamental utilizarlas en ope-
raciones que involucren múltiples sentencias SQL.

3. Batch Processing y Pooling:

• ¿Cuáles son las ventajas de implementar batch processing y el uso de un pool de conexiones (como HikariCP) en
aplicaciones con alta concurrencia?

4. CallableStatement y Seguridad:

• Menciona las ventajas de utilizar CallableStatement para invocar procedimientos almacenados y describe
dos buenas prácticas de seguridad al acceder a la base de datos.

5. Evaluación del Proyecto:

• Define los criterios que utilizarías para evaluar la usabilidad, el rendimiento y la mantenibilidad de la solución im-
plementada.

También podría gustarte