Conectarse a MySQL desde Java

Hola que tal, esta vez vamos hacer una conexión entre Java y MySQL, con la finalidad de en una posterior entrada poder hacer un CRUD (create, read, update, delete) completo.

Bien, para que una aplicación hecha en Java pueda conectarse con una base de datos, cualquiera que esta sea (MySQL, SQLServer, Oracle,PostgreSQL etc), necesita un driver, comúnmente llamado JDBC Driver.

Descargar JDBC Driver para MySQL

Para empezar debemos descargar el JDBC driver desde el siguiente enlace DESCARGAR DRIVER JDBC MySQL y sigue los pasos como se ve en la imagen.

conectarse a MySQL desde Java

Antes de completar la descarga te va pedir que crees una cuenta o que si ya la tienes, la utilices para la descarga, omites este paso y te vas hasta el final donde se encuentra este enlace No thanks, just start my download, al cual le das click para la descarga.

Una vez descargado lo debes descomprimir y debe quedar como se ve en la imagen.

conectarse a MySQL desde Java

A continuación debes copiar el archivo que se ve en la imagen anterior dentro de tu proyecto, lo recomendable es que lo copies dentro de una carpeta, puedes crear un carpeta llamada driver y copiarlo dentro.


Ojo: El conector debe estar dentro de tu proyecto java. 

Agregar el driver al classpath del programa

Para que el driver sea reconocido dentro del programa y puedas conectarte a MySQL, además de copiarlo dentro del proyecto debes de agregarlo al classpath del proyecto, antes de agregarlo no olvides darle un refresh al proyecto para que se actualice con la carpeta que creaste en el paso anterior, una de las formas de agregarlo es siguiendo los siguientes pasos.

Dar click derecho en la paso 1

conectarse a MySQL desde Java

Luego tendrás que hacer las siguientes configuraciones como se ve en la imagen:

conectarse a MySQL desde Java

Finalmente el proyecto debería queda como se ve en la imagen.

conectarse a MySQL desde Java

Parámetros de la cadena de conexión a la base de datos

Una cadena de conexión esta compuesta de la siguiente manera:

jdbc:mysql://host:port/database?user=name_user&password=secret_password

En donde:

  • host: es la IP donde está la base de datos MySQL, si está en nuestra misma máquina será localhost.
  • port: es el puerto por donde escucha el servidor de base de datos, por defecto para MySQL es el 3306.
  • database: es el nombre de la base de datos a la cual nos queremos conectar.
  • user: es el usuario de la base de datos
  • password: es la clave con que el usuario puede ingresar a la base de datos.

El método getConnection() de la clase DriverManager para la conexión

El método getConnection() es un método estático de la clase DriverManager por esa razón es que se accede sin crear un objeto, esta clase está disponible dentro del paquete java.sql, el cual debes importar para que no te de error.

Dado que el método getConnection() tiene sobrecarga, existen tres formas de conexión:

  1. getConnection(String url)
  2. Connection getConnection(String url, Properties info)
  3. Connection getConnection(String url, String user, String password)

Nota importante: Recuerda que para que puedas conectarte debes tener instalado MySQL y previamente tener creada la base de datos a la cual te quieres conectar, sino tienes instalado todavía, puedes revisar el tutorial Aprende a instalar MySQL y MySQL Workbench en Windows 10.

A continuación la implementación de la conexión con las tres formas posibles:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.ecodeup.driverMySQL;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class TestDriverMySQL {
 
public static void main(String[] args) {
 
// conexiones
Connection conexion1 = null;
Connection conexion2 = null;
Connection conexion3 = null;
 
// usuario y clave
String user = “root”;
String password = “”;
try {
 
// una sola cadena de conexión, en un sólo parámetro se concatena el
// usuario y el password
String url1 = “jdbc:mysql://localhost:3306/mibase?user=” + user + “&pasword=” + password;
conexion1 = DriverManager.getConnection(url1);
if (conexion1 != null) {
System.out.println(“Conexión 1: Conexión a mibase satisfacoria”);
}
 
// se envía la cadena y los datos de usuario y password por separado
Properties datos = new Properties();
datos.put(“user”, user);
datos.put(“password”, password);
String url2 = “jdbc:mysql://localhost:3306/mibase”;
conexion2 = DriverManager.getConnection(url2, datos);
if (conexion2 != null) {
System.out.println(“Conexión 2: Conexión a mibase satisfacoria”);
}
 
// se envía la cadena, el usuario y el password por separado
String url3 = “jdbc:mysql://localhost:3306/mibase”;
conexion3 = DriverManager.getConnection(url3, user, password);
if (conexion3 != null) {
System.out.println(“Conexión 3: Conexión a mibase satisfacoria”);
}
} catch (SQLException e) {
System.out.println(
“Error en la conexión, verifique, su usuario y password o el nombre de la base a la que intenta conectarse”);
e.printStackTrace();
}
}
}

Si ejecutas el código anterior te mostrará que la conexión fue satisfactoria, pero tal vez te preguntes por qué te lanza una advertencia (Warning que no afecta en nada a la conexión) cada vez que te conectas al servidor de base de datos?, esto se da debido a que a partir de la versión 5.5 de MySQL se implementa el uso de conexiones seguras, esto quiere decir que la información que se envía desde tu aplicación hasta el servidor de base de datos va encriptada, y para esto se necesita tener configurar certificados y claves de autenticación. Que para el ejemplo no es necesario, ojo, pero si lo es en ambientes de producción.

zzz

De todas formas si deseas quitar este Warning debes poner al final de la cadena de conexión lo siguiente: &useSSL=false.

 

Deja un comentario