Introduccion Conexion BD - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki
📦 Proyecto:
mini-crud-sql(Tema 3 — JDBC + MySQL) — ⬇️ Descargar ZIP · ☁️ Abrir en Codespace
En este tutorial vamos a explorar cómo establecer la conexión entre Java y MySQL a nivel introductorio. Desarrollaremos un proyecto que nos permitirá ver la interacción directa entre estos dos programas fundamentales en el desarrollo de aplicaciones.
Vamos a crear una base sólida desde donde experimentar con ejemplos prácticos. No nos enfocaremos tanto en la presentación de la información, los tipos de datos optimizados o la eficiencia del código en esta primera aproximación. Nuestro objetivo principal será comprender los conceptos fundamentales.
La API que utilizaremos para conectar programas Java con bases de datos se llama JDBC (Java Data Base Connectivity) y la encontraremos dentro del paquete java.sql.
Nota: Una API (Application Programming Interface) es un conjunto de definiciones, protocolos y herramientas que nos permite construir software de aplicación. En términos simples, una API especifica cómo diferentes componentes de software deben interactuar entre sí. En el caso de JDBC, es la API estándar de Java que define cómo los programas Java pueden comunicarse con bases de datos, proporcionándonos clases e interfaces como Connection, Statement, ResultSet, etc.
JDBC funciona esencialmente como un driver que conecta una aplicación con un Sistema Gestor de Bases de Datos. Vamos a analizar sus funciones principales:
- Establece conexión con la BD
- Permite manipular la BD
Los drivers son provistos por los mismos fabricantes de las bases de datos, en nuestro caso necesitaremos el conector específico de MySQL.
Antes de comenzar, tendremos que preparar nuestro entorno de desarrollo:
- Ambiente de desarrollo (utilizaremos Visual Studio Code)
- JDK instalado
- MySQL instalado
- Proyecto Maven MVC ya desarrollado (el ejemplo básico con PersonaVO, PersonaDAO y PersonaControladorServlet)
- Dependencia del conector MySQL en el archivo pom.xml:
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.4.0</version>
</dependency>Partiremos del proyecto MVC básico que ya desarrollamos anteriormente, donde tenemos:
- PersonaVO (modelo de datos)
- PersonaDAO (operaciones en memoria)
- PersonaControladorServlet (controlador)
- JSPs para vistas (formulario y listado)
Vamos a modificar este proyecto para que en lugar de almacenar los datos en memoria (ArrayList), los almacene en una base de datos MySQL. Para esto:
- Modificaremos la clase PersonaDAO existente para que use JDBC en lugar de ArrayList
- Agregaremos una nueva clase Conexion en el paquete
modelo.conexion - Mantendremos la misma interfaz de PersonaDAO (agregar, getLista, etc.) para que no sea necesario cambiar el controlador ni las vistas
De esta manera aplicaremos el principio de responsabilidad única: la clase Conexion manejará la conexión a la base de datos, mientras que PersonaDAO manejará las operaciones CRUD usando esa conexión.
Crearemos una base de datos llamada institutoWeb que tendrá la tabla personas con los campos que corresponden a nuestro PersonaVO (codigo y nombre). El script para la creación será el siguiente:
/********************************/
CREATE database institutoWeb;
USE institutoWeb;
CREATE TABLE personas (
codigo INT(8),
nombre VARCHAR(10) NOT NULL,
PRIMARY KEY (codigo)
);
-- Insertamos algunos datos de prueba
INSERT INTO personas (codigo, nombre) VALUES
(1, 'Juan'),
(2, 'María'),
(3, 'Carlos');
/********************************/Nota: El campo codigo es la clave primaria de la tabla y será ingresado manualmente por el usuario a través del formulario web, tal como está diseñado en la vista del proyecto MVC.
Partiendo del proyecto MVC que ya tenemos con la siguiente estructura:
proyecto-mvc/
├── pom.xml
└── src/
└── main/
├── java/
│ ├── modelo/
│ │ ├── vo/
│ │ │ └── PersonaVO.java
│ │ └── dao/
│ │ └── PersonaDAO.java
│ └── controlador/
│ └── PersonaControladorServlet.java
└── webapp/
├── index.jsp
├── WEB-INF/vista/
│ ├── persona-editar.jsp
│ ├── persona-form.jsp
│ └── persona-lista.jsp
└── css/
└── styles.css
Vamos a añadir:
-
Un nuevo paquete:
modelo.conexiondonde ubicaremos la clase Conexion -
Modificar:
modelo.dao.PersonaDAOpara usar JDBC en lugar de ArrayList - Mantener: Toda la capa de vista y controlador sin cambios
La estructura final quedará así:
proyecto-mvc/
├── pom.xml <— (con dependencia MySQL añadida)
└── src/
└── main/
├── java/
│ ├── modelo/
│ │ ├── vo/
│ │ │ └── PersonaVO.java
│ │ ├── dao/
│ │ │ └── PersonaDAO.java <—(modificado para JDBC)
│ │ └── conexion/
│ │ └── Conexion.java <—(nuevo)
│ └── controlador/
│ └── PersonaControladorServlet.java
└── webapp/
├── index.jsp
├── WEB-INF/vista/
│ ├── persona-editar.jsp
│ ├── persona-form.jsp
│ └── persona-lista.jsp
└── css/
└── styles.css
Para añadir el conector MySQL a nuestro proyecto, agregaremos la siguiente dependencia al archivo pom.xml:
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.4.0</version>
</dependency>Una vez que guardemos el archivo pom.xml, Maven descargará automáticamente el conector MySQL y lo añadirá al classpath del proyecto.
Una vez completado este paso, tendremos todo listo para comenzar a codificar.
Para establecer la conexión con la BD crearemos un objeto de la clase Conexion.
Continuamos por la clase Conexion MODELO-Conexion
JDBC · Java Database Connectivity · MySQL · mysql-connector-j · pom.xml · institutoWeb · tabla personas · PersonaVO · PersonaDAO · Conexion · arquitectura MVC + BD · persistencia
🧠 Autoevaluación — Arquitectura completa BD + Web
← Comparativa persona-form.jsp · 🏠 Inicio · Clase Conexion →
