¿Cómo conectar una aplicación Java a MySQL utilizando Maven?
Para cualquier desarrollador que trabaja con Java, conectar una aplicación a una base de datos MySQL es una habilidad esencial. Aquí abordaremos cómo lograr esta conexión utilizando Maven y te guiaremos paso a paso para que puedas integrarlo en tus proyectos actuales y futuros.
¿Qué es un conector y cómo configurarlo?
Los conectores son herramientas que permiten a una aplicación Java interactuar directamente con una base de datos. Para integrar MySQL en tu proyecto, es necesario configurar el conector adecuado.
Eliminar dependencias: Comienza accediendo al menú de proyecto en tu entorno de desarrollo (IDE) y localiza la opción "Dependencias".
Buscar y añadir MySQL Connector: Escribe "MySQL Connector" en la barra de búsqueda. Selecciona la última versión disponible y agrégala.
Descargar plugins con Maven: Maven gestionará la descarga e implementación de todos los plugins necesarios.
¿Cómo crear una clase de conexión?
Después de configurar el conector, el siguiente paso es programar la lógica de conexión en Java.
Manejo de excepciones: Asegúrate de manejar SQLException para gestionar cualquier error de conexión que pueda surgir.
Importancia de la seguridad de las conexiones
A menudo, en entorno de desarrollo local, se utilizan configuraciones por defecto, como el usuario 'root' sin contraseña. Esto es adecuado para pruebas locales, pero cuando se transita a producción, es crucial adoptar medidas de seguridad como:
Crear usuarios específicos con permisos limitados.
Configurar contraseñas seguras.
Cambiar el puerto predeterminado si es factible.
¿Cómo validar la conexión desde la clase principal?
Una vez configurada la conexión, es momento de integrarla con tu aplicación principal y verificar su funcionamiento.
Ejecutar el proyecto: Usa tu IDE para compilar y ejecutar el proyecto. Si todos los servicios, como el servidor MySQL, están activos, deberías ver el mensaje "Conexión exitosa".
¿Qué hacer si falla la conexión?
Si experimentas un error de conexión, asegúrate de:
Verificar que el servidor MySQL esté activo.
Confirmar que las credenciales y la URL de conexión sean correctas.
Consultar los mensajes de error detallados para solucionar problemas específicos.
Con estos pasos, deberías poder configurar y validar una conexión exitosa a una base de datos MySQL desde una aplicación Java usando Maven. ¡Felicidades por avanzar en tus habilidades de desarrollo y sigue explorando nuevas integraciones para mejorar tus proyectos!
En IntelliJ IDEA... en File -> Project Structure -> Dependecies, hacen click al (+), y luego seleccionan la opcion 2 (descargar del repositorio de Maven). Alli buscan poniendo 'mysql' y les arroja las opciones.
Exelente amigo, me funcionó a la perfección.
gracias, me sirvió mucho
Hola Compañeros.. traigo un aporte sobre los problemas con las librerías en IntelliJ IDEA.
Si te aparece este ERROR:: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/db.
la solución es agregar el archivo mysql-connector-java-8.0.20 a tu proyecto si tienes instalados los conectores de MYSQL, esta librería se encuentra en la ruta C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.20, para agregarla en IntelliJ IDEA tiene que ir a : File/Project Structure/Libraries/ y agregar una nueva librería, y listo ya puedes compilar tu programa sin ese error.
Para instalar el Conector de MySQL debes ir a su Pagina Oficial y descargar el archivo MSI de instalación : https://dev.mysql.com/downloads/mysql/, descarga el instalador web(el que pesa menos ya que no vas a requerir descargar todo el RDBMS) luego al abrir el instalador debes seleccionar la opción 'custom' y luego de eso buscas la opción MySQL Connectors e instalas en conector de Java. Listo así se instala el conector en Windows. Saludos.
Gracias bro, me sirvió mucho tu aporte, duré varias horas tratando de conectarme, para quienes usan linux deben añadirlo con la opcion 1, jars or directories, el archivo se encuentra en la ruta /usr/share/java/mysql-connector...
Perfecto me sirvio mucho tu aporte !!!!
Para quienes tengan problemas con la librería de conexión a la base de datos.
Descargar el paquete mysql-connector-java (es un .jar)
En el directorio del proyecto, click derecho en <Dependencies> - Select Add dependency.
Tipear en el groupId to: group.id y en artifactId to: artifact.id (o cualquier cosa en ambos casos)
En version, el número de la versión del .jar descargado
Click Add to continue.
La dependencia será agregada en el pom.xml
Luego,
En el directorio <Dependencie> del proyecto, aparecerá el archivo con las especificaciones ya dadas, click derecho en dicho archivo - Manually install artifact
Buscar en el .jar descargado y clickear en "Install locally".
Es una traducción muy coloquial de algo que vi en la red y me solucionó el problema!!!
Gracias. lo solucione con este comentario.
para descargar el JAR vamos a https://dev.mysql.com/downloads/connector/j/ escogemos la opción Platform Independent, para poder descargar el archivo punto .zip(al descomprimir encontraremos un archivo llamado mysql-connector-j-8.0.32) mas no el instalador.
después según los paso mencionados.
¿Dónde queda las buenas prácticas de Naming de métodos y variables en este curso?
JDBC
Java Data Base Connectivity
Clases
DriverManager: es para cargar un driver (según el motor de BD). Nos permite crear una instancia de la conexión.
Connection: para establecer conexiones con las bases de datos**.** Genera la sesión, maneja todo el ciclo de vida de una sesión cuando nos conectamos a una base de datos.
Statement: para ejecutar sentencias SQL y enviarlas a las BD. Nos ayuda a traer datos de una tabla.
PreparedStatement: hace lo mismo que Statement sólo que permite recibir parámetros (clausula where).
ResultSet: para almacenar el resultado de la consulta y almacenarlos en nuestros objetos (modelos). Es una interfaz que nos ayudará a manejar los datos obtenidos convirtiendo los datos en objetos.
Muchas gracias
Si a alguien le aparece el siguiente error al correr la aplicación:
java.sql.SQLException: The server time zone value 'unknown' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
Ejecutar este comando en una ventana sql del php my admin:
SET GLOBAL time_zone = '-5:00';
(colocar su zona horaria)
En mi parecer inserta código y debería dar como una explicación por que lo crea
Si eso es lo maluco de NetBeans crea mucho código automático y código basura. La verdad no me gusta Netbeans por eso.
INTELLIJ IDEA
Index.java
import java.sql.Connection;
public class Index {
public static void main(String[] args) {
Conexion conexion = new Conexion();
try(Connection cnx = conexion.get_connection()){
}catch(Exception e){System.out.println(e);}}
}
Conexion.java
import java.sql.SQLException;
public class Conexion {
public Connection get_connection() {
Connection conection = null;
try {
conection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mensaje_app?serverTimezone=UTC", "root", "");
if (conection != null) {
System.out.println("Conexion Ready");
}
}catch(SQLException e){
System.out.println("Error en conexión!! " + e);
}
return conection;
}
}
Gracias por este codigo, tenia problemas con la linea del Driver, me daba problema de Timezone y no sabia como solucionar, gracias.!!!
GRACIAS el código no me servía y quería llorar
En IntelliJ IDEA (VERSION 2022.2.2)
click en File -> Project Structure -> Libraries, hacen click al (+) -> From Maven ...
escriben "mysql" y les tira todas las opciones yo elejí la ultima version que es 8.0.30 despues de selecionar darle al boton "ok"
finalmente click en aplicar (derecha inferior) y para finalizar en ok
016
Excelente muchas gracias
Excelente, para los que les salga el error de TimeZone deben de ejecutar en la BD el comando:
`
SET GLOBAL time_zone = '-5:00';
`
gracias @Josh9638
hola, en que parte debo de ingresar este comando. gracias
Felipe, Se coloca en la linea de comandos del mysql.
En la pestaña de SQL
Pegas el comando debajo de "Ejecutar la(s) consulta(s) SQL en la base de datos mensajes-app:"
Le das clic en continuar
Muy bien, siguiendo los pasos se puede lograr la conexión.
El único problema que se me presento fue al realizar la búsqueda de la dependencia y no aparecía (Después de esperar los 5 a 10 minutos a que se descargara el repositorio Maven), pude encontrarla con solo agregar en la búsqueda la palabra “mysql”, ya que añadiendo más caracteres se organiza de tal forma que no aparece.
Muchas gracias por la clase y me funciona correctamente con mysql-connector-java-5.1.18.
estabamos manejando el IDE intelliJ idea y me parece mucho mejor que netbeans.
Existen varios IDEs para trabajar con Java, adicional a intelliJ y Netbeans también puedes trabajar con Visual Studio Code, lo importante es trabajar con el IDE que se acomode más a tus necesidades
Una duda, por qué hace 2 veces lo mismo? En la funcion de la clase conexion ya está el codigo que luego vuelve a escribir en el main.
Ejecuté el codigo sin duplicar y me sale el mismo resultado:
main(){
Conexion conexion = new Conexion();
conexion.get_connection();
}
Quedé con la misma duda..
en el de la clase main te devuelve la conexion para que la uses ahí, en cambio, en la clase Conexion crea el metodo que te devuelve la conexion. Pero igual tengo duda xq lo hace dentro del parentesis del try y no entre corchetes
para los que usan IntelliJ IDEA.
file
Project structure
Proyect Settings : Modules
Dependencies
en el botón de +
Library..
en el boton de New Library
from Maven
en cuadro de dialogo buscas con la palabra mysql
10.! seleccionas mysql:mysql-connector-java:8.0.30
luego en ok
seleccionar el jar: mysql:mysql-connector-java:8.0.30.jar
13 y luego nuevamente en ok.
Si les aparece el error ClassNotFoundException al correr el proyecto deben modificar en la carpeta Project Files -> pom.xml la siguiente propiedad :
Cree mi proyecto en IntelliJ y mi clase Inicio, como agrego las dependencias ? . Tambien, cuando le doy add Dependency y en Query escribo mysql... se queda cargando pero no aparece nada
Puede ser que no este cargando las dependencias de maven, en ese caso se pueden hacer 2 cosas:
Usar el netbeans apache y validar que tenga acceso a dependencias, el repo de maven.
Bajar el driver de JDBC para MySql, e incluirlo en el proyecto (el Jar del driver).
Asi las puede agregar
File > Project Setting > Modules > Dependencies > Add > Library > From Maven
Si vienes de la ruta de Backend con Java, del Curso de PosgreSQL y tienes instalada la versión Intellij IDEA Community, una forma de hacerlo es:
1. Crear proyecto con Maven
2. En pom.xml agregas la siguiente dependecia:
<!-- Sección de dependencias -->
<dependencies>
<!-- Dependencia de PostgreSQL -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
</dependency>
</dependencies>
3. Luego clic derecho en el archivo->Maven-> Reload Project
4. Luego ya puedes crear tu clase Conexion y continuar con el curso.
Tutorial muy rápido para hacerlo desde IntelliJ IDEA: