Luis Miguel Florez
Eisten Eisten
Mucha gracias
José manuel Sanchez Juarez
Gracias
Conectar una aplicación Java con una base de datos MySQL usando JDBC es el primer paso para crear sistemas que lean, escriban y modifiquen información de forma persistente. Aquí aprenderás a configurar el conector JDBC, declarar las variables necesarias y ejecutar tu primera consulta SQL desde un proyecto Java.
¿Qué necesitas para conectar Java con MySQL?
Antes de escribir código, debes preparar el entorno. La conexión depende de un archivo .jar llamado MySQL Connector/J, que actúa como puente entre tu programa Java y el motor de base de datos.
project.¿Qué es el MySQL Connector/J? Es un driver JDBC en formato
.jarque permite a Java comunicarse con MySQL. Sin él, Java no sabe cómo hablar con la base de datos.
¿Cómo agregar el conector JDBC al proyecto?
Una vez descargado el archivo .zip, extráelo y guarda únicamente el .jar en una carpeta llamada Conector dentro de tus documentos. Copia la ruta completa porque la vas a necesitar [01:30].
En tu IDE, ve a File, luego a la estructura del proyecto, entra en Modules y abre la pestaña de dependencias. Agrega un nuevo JAR apuntando a la ruta donde guardaste el conector, aplica los cambios y acepta. Con esto, tu proyecto ya reconoce las clases necesarias para abrir la conexión.
¿Cómo declarar las variables para la conexión JDBC?
La conexión a MySQL desde Java se apoya en tres objetos principales que debes declarar al inicio. Cada uno cumple una función específica dentro del flujo de comunicación con la base de datos [02:45].
Connection myCon = null; representa la conexión activa con la base de datos.Statement myStmt = null; se encarga de ejecutar las sentencias SQL.ResultSet myRes = null; almacena los resultados que devuelve una consulta.Estos tres objetos forman la base de cualquier operación CRUD que vayas a implementar más adelante.
¿Cómo se usa DriverManager.getConnection?
El método DriverManager.getConnection() es el que abre el canal hacia MySQL. Recibe tres parámetros en este orden: la URL de conexión, el usuario y la contraseña.
java myCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/project", "root", "tu_contraseña" );
La URL sigue una estructura clara: jdbc:mysql:// indica el protocolo, localhost:3306 es el host y el puerto por defecto de MySQL, y project es el nombre de tu base de datos. Recuerda usar tus credenciales reales.
¿Por qué se usa el puerto 3306? Es el puerto por defecto que MySQL utiliza para escuchar conexiones. Si tu instalación usa otro puerto, debes ajustarlo en la URL.
¿Cómo manejar errores y ejecutar tu primera consulta?
La conexión se envuelve en un bloque try-catch para capturar cualquier fallo. Si todo sale bien, imprimes un mensaje de éxito; si algo falla, el catch te avisa con el detalle del error [04:20].
java try { myCon = DriverManager.getConnection(url, user, password); System.out.println("Genial, nos conectamos"); } catch (Exception e) { System.out.println("Algo salió mal"); e.printStackTrace(); }
Un error común al ejecutar por primera vez es No suitable driver found for jdbc:mysql. Significa que el conector no se cargó correctamente. La solución suele ser hacer un Build Project para que el IDE reconstruya las dependencias y vuelva a tomar el .jar.
¿Cómo leer datos con Statement y ResultSet?
Una vez establecida la conexión, puedes crear un Statement y ejecutar una consulta SELECT. El resultado se recorre con un while que avanza fila por fila usando el método next() del ResultSet [06:10].
java myStmt = myCon.createStatement(); myRes = myStmt.executeQuery("select * from employees");
while (myRes.next()) { System.out.println(myRes.getString("firstName")); }
Este fragmento lee todos los registros de la tabla employees y muestra el valor de la columna firstName de cada fila. Si la conexión y la consulta funcionan, verás los nombres impresos en la consola.
Con esta base ya tienes el esqueleto para construir las operaciones de creación, actualización y eliminación. ¿Qué consulta vas a ejecutar primero en tu base de datos? Cuéntalo en los comentarios.
Luis Miguel Florez
Eisten Eisten
Mucha gracias
José manuel Sanchez Juarez
Gracias
Moni Guerra
Finalmente éxito! Al principio me generó el error de Driver. Pero me fijé que me faltaron los ‘:’ en la URL. Lo correcto: “jdbc:mysql://localhost:3306/tu_BD”
SERGIO ALEJANDRO PEREZ CASTILLO
gracias tenia el mismo error
Israel Garcia
X2 jeje
laura vanessa bermudez florez
Paul Flores
Quizá se adelantó a esto porque en otros cursos explican MySQL. Si bien faltó mencionar que hay otros cursos para el manejo de todo ello
Guillermo Rivadeneira
es que se sobreentiende que la gente sabe, que este curso va despues de aprender MySQL. Es una pauta importante seguir correctamente las rutas sugeridas o bien apoyarse en la IA que ofrece Platzi
Por si alguien esta usando maven, me ha funcionado de la siguiente manera:
<dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.32</version> </dependency>
docker run --name my-mysql-container -e MYSQL_ROOT_PASSWORD=12345 -p 8060:3306 -d mysql:8.0.32
Luis Fernando Chacha Montenegro
La URL mostrada por la instructura no funciona.
"jdbc:mysql//localhost:3306/project"
Pero si la siguiente:
"jdbc:mysql://localhost:3306/project"
Cómo se explica esto?
Manuel Läuft
on los : despues de mysql y antes del // que efectivamente aparecen en el video de la clase
Sergio Andrés Rodríguez Ramírez
@manuel no es que efectivamente aparezcan en el video de la clase, es que en edición los agregaron, si miras antes del minuto 6:52 no estaban.
Jan Cobian
Nunca se menciona cuales son las caracteristicas de la base de datos para poder crearla. El docente únicamente repite lo que esta escribiendo sin explicar el por que de cada cosa o que hace cada linea de código.
Daniel Eduardo Rojas Pulido
Se asume que el estudiante ya tiene MySQL instalado y una base de datos creada, pero no se explica cómo instalarla ni cómo configurarla igual a la que se usa durante el curso. Esto genera bloqueos innecesarios y obliga a buscar información fuera de la plataforma. Sería importante incluir el paso a paso completo, especialmente para quienes estamos aprendiendo desde cero.
Recomiendo que agreguen una clase antes de esta en donde se explica paso a paso lo de la base de datos para poder seguir esta clase íntegramente y sin problemas.
Jonatan Padilla
Si, deacuerdo.
se me hace que falta ese curso agregado a la ruta, o por lo menos hacer referencia a una documentación o un curso.
Pedro Nicolas Rios Vargas
Existe otra forma para agregar el conector al proyecto Java en el que nos encontramos trabajando. Para ello, se requiere estar trabajando con un entorno de trabajo como Maven o Gradle.
Maven En el caso de Maven basta con agregar el siguiente código en tu archivo pom.xml:
<dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>$VERSION</version> </dependency>
Gradle Para el caso de Gradle basta con agregar en la sección dependencies del archivo build.gradle el siguiente código:
implementation 'org.mariadb.jdbc:mariadb-java-client:$VERSION'
NOTA: Es necesario cambiar $VERSION por la versión del conector deseada. En el caso del JDK 8~19 se puede usar la versión 3.2.0.
Fuente
Victor Ovalle Porras
Buenas podria compartir la base de datos project, para ir a la par con las clases. Muchas gracias.
Ana Fernanda Gutierrez Villanueva
ProfesorVictor Ovalle Porras
Gracias por su ràpida respuesta,
Martin Bocanegra Santillan
Cuando abrió la aplicación me perdí, siento que sobreentiende que sabes algo, no entiendo qué programa esta usando. ¿Qué me recomiendan? mi objetivo es aprender SQL y este es el primer curso que me mandó ADA al realizar la consulta:
Fundamentos de SQL: Aprende los conceptos básicos de SQL, incluyendo consultas SELECT, filtros WHERE, funciones de agregación y JOINs.1. Curso de Java SE: SQL y Bases de Datos2. Curso Práctico de SQL y MySQ
Jesús Patricio Pereira Matus
el error del min 6:50 es porque la url completa es asi "jdbc:mysql://localhost:3306/project" es decir el orden de la url es la siguiente "jdbc:basededatos://dondeesta:puerto/basededatosaconectar" tiene que ser exactamente asi porque si colocamos un simbolo mal la conexion no se va a establecer
Edwin David Diaz Parra
Muy buen video, saber como hacer una conexión JDBC, me ayudo mucho para mi proyecto
Oscar Chavez
Si en algun punto les sale este error Connection error: Communications link failure
es porque su mysql no esta corriendo en mac podrian correr un brew services start mysql
un pequeño lio para los que no teniamos ni db ni tabla ni datos hehehe
Jhoan Alexander Sanchez Rodriguez
Hola. en mi teoria chocoloca voy a crear un contenedor para tener la base datos, y asi generar el ejecicio correspondiente, trabajare con podman en fedora que es mi sistema operativo. Dare avances del proceso. - ¿Por que podman ? es de la familia redhat es decir viene incluido dentro del OS - ¿Por que Fedora? Gusto a complicar las cosas. -Espectativas BAJAS.
Santiago higuita ochoa
Antes de esta clase, se debe tener previamente configurada una base de datos en un pc local con mysql. Si nunca has interactuado con bases de datos, no te preocupes mucho, solo pausa la clase y encargate de configurar la DB
Miguel Sanchez
Gabriel Omar Gramajo
Script sql para crear la BD en MySQL
CREATE DATABASE IF not EXISTS project;
USE project;
DROP TABLE IF EXISTS employees;
CREATE TABLE `employees` (
``` idint(11) NOT NULL AUTO_INCREMENT, `` `` first_namevarchar(64) DEFAULT NULL,`` `` pa_surnamevarchar(64) DEFAULT NULL,`` `` ma_surnamevarchar(64) DEFAULT NULL,`` `` emailvarchar(64) DEFAULT NULL,`` `` salary decimal(10,2) DEFAULT NULL,`` `` PRIMARY KEY (id)`` ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET = latin1;`
INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`)
VALUES ("John", "Doe", "Smith", "john.doe@example.com", 50000.00),
("Jane", "Smith", "Johnson", "jane.smith@example.com", 60000.00),
("Michael", "Johnson", "Brown", "michael.johnson@example.com", 55000.00),
("Emily", "Brown", "Davis", "emily.brown@example.com", 55000.00),
("David", "Davis", "Wilson", "david.davis@example.com", 58000.00);
Luis Alberto Arciniegas Jaimes
Sustituí los parámetros del DriverManager.getConnection por unas variables. De tal manera me quede práctico para cambiar en cualquier momento los datos de conexión.
Luis Hernando Soto Mesa
Enlace para MACOS https://dev.mysql.com/downloads/file/?id=520816
La profe dejó la base de datos en un comentario, para aquellos que no la encontraron aquí la dejo:
-- Se crea una base de datos llamada "project" si no existe. CREATE DATABASE IF not EXISTS project; -- Se selecciona la base de datos "project" para utilizarla. USE project; -- Si existe una tabla llamada "employees", se elimina. DROP TABLE IF EXISTS employees; -- Se crea la tabla "employees" con las columnas id, first_name, pa_surname, ma_surname, email y salary, y se establece id como clave primaria. CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(64) DEFAULT NULL, `pa_surname` varchar(64) DEFAULT NULL, `ma_surname` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; -- Se insertan cinco filas en la tabla "employees" con diferentes valores para cada columna. INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('John', 'Doe', 'Smith', 'john.doe@example.com', 50000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Jane', 'Smith', 'Johnson', 'jane.smith@example.com', 60000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Michael', 'Johnson', 'Brown', 'michael.johnson@example.com', 55000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Emily', 'Brown', 'Davis', 'emily.brown@example.com', 52000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('David', 'Davis', 'Wilson', 'david.davis@example.com', 58000.00);
Falta un video explicativo en donde se cree la base de datos en MySQL, porque se asume que se sabe como hacerlo, para los que tengan problema con esto, deben descargar el archivo ejecutable de MySQL, despues de la instalacion verificar que si aparezca en los servicios del computador e iniciar el servicio si esta apagado, verificar tambien que MySQL se encuentre en las variables de entorno del pc y finalmente deben crear la base de datos que lo pueden hacer desde la consola entrando en la ubicacion del ejecutable de MySQL que esta en la carpeta bin, ejecutar el comando:
mysql -u root -p
Este comando les pedira de inmediato la contraseña que pusieron en la instalacion de MySQL para root, despues de introducirla les dara acceso a la terminal de MySQL y crean la base de datos que desean asi:
create database nombre_que_elijas;
Se creara tu base de datos, debes entrar a la base de datos que creastea asi:
use nombre_de_tu_basededatos
adicional puedes crear una tabla con el comando:
create table nombre_que_elijas
con esto ya puedes continuar con el proyecto
¡Hola! Recuerda que puedes personalizar la base de datos, te dejo un ejemplo para poder seguir el curso:
-- Se crea una base de datos llamada "project" si no existe. CREATE DATABASE IF not EXISTS customerManagement; -- Se selecciona la base de datos "project" para utilizarla. USE project; -- Si existe una tabla llamada "employees", se elimina. DROP TABLE IF EXISTS employees; -- Se crea la tabla "employees" con las columnas id, first_name, pa_surname, ma_surname, email y salary, y se establece id como clave primaria. CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(64) DEFAULT NULL, `pa_surname` varchar(64) DEFAULT NULL, `ma_surname` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; -- Se insertan cinco filas en la tabla "employees" con diferentes valores para cada columna. INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('John', 'Doe', 'Smith', 'john.doe@example.com', 50000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Jane', 'Smith', 'Johnson', 'jane.smith@example.com', 60000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Michael', 'Johnson', 'Brown', 'michael.johnson@example.com', 55000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Emily', 'Brown', 'Davis', 'emily.brown@example.com', 52000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('David', 'Davis', 'Wilson', 'david.davis@example.com', 58000.00);
Hola, yo use estos comandos para la base de datos, espero les sirvan :)
CREATE DATABASE IF not EXISTS project; USE project; DROP TABLE IF EXISTS employees; CREATE TABLE `employees` ( `id` int AUTO_INCREMENT, `first_name` varchar(64) DEFAULT NULL, `pa_surname` varchar(64) DEFAULT NULL, `ma_surname` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('John', 'Doe', 'Smith', 'john.doe@example.com', 50000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Jane', 'Smith', 'Johnson', 'jane.smith@example.com', 60000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Michael', 'Johnson', 'Brown', 'michael.johnson@example.com', 55000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('Emily', 'Brown', 'Davis', 'emily.brown@example.com', 52000.00); INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`) VALUES ('David', 'Davis', 'Wilson', 'david.davis@example.com', 58000.00); SELECT * FROM `employees`;