Cómo conectar una aplicación Java (Eclipse) con una Base de Datos MySQL

Primera parte del tutorial

Para esta primera parte del video, se crea la base de datos junto con la tabla con los datos necesarios y posteriormente se crea la aplicación Java en la que se escribe el código mínimo para realizar la conexión entre la aplicación Java y la base de datos MySQL.

La conexión de nuestra aplicación Java con una base de datos MySQL se resumirá en los dos siguientes pasos:

  1. Cargar el controlador o driver.
  2. Establecer la conexión.

Todo el código que realiza la conexión se escribe dentro de un único archivo de prueba llamado Conexion.java

Código fuente

				
					import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexion {

	private static final String CONTROLADOR = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://localhost:3306/bd_ejemplo";
	private static final String USUARIO = "root";
	private static final String CLAVE = "mysql";

	public Connection conectar() {
		Connection conexion = null;
		
		try {
			Class.forName(CONTROLADOR);
			conexion = DriverManager.getConnection(URL, USUARIO, CLAVE);
			System.out.println("Conexión OK");

		} catch (ClassNotFoundException e) {
			System.out.println("Error al cargar el controlador");
			e.printStackTrace();

		} catch (SQLException e) {
			System.out.println("Error en la conexión");
			e.printStackTrace();
		}
		
		return conexion;
	}

	public static void main(String[] args) {

	}
}
				
			

Videotutorial Parte 1

Segunda parte del tutorial

Para esta segunda parte se refactoriza el código realizado en la primera parte de tal forma que la clase Conexion.java (que contiene el código de la conexión hacia la base de datos) se pueda reutilizar desde otras clases.

Para cumplir con lo  anterior se hizo lo siguiente:

  1. La lógica que realiza la carga del driver de MySQL se ubica dentro de un bloque static consiguiéndose así que solo se realice una única vez (al momento que carga toda la aplicación).
  2. La lógica que realiza la conexión se ubica dentro de un método conectar cuyo tipo de retorno es Connection. Este método retornará un objeto de tipo Connection que contiene la referencia a la conexión ya establecida.

Videotutorial Parte 2

Código fuente

Conexion.java

				
					import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexion {

	private static final String CONTROLADOR = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://localhost:3306/bd_ejemplo";
	private static final String USUARIO = "root";
	private static final String CLAVE = "mysql";

	static {
		try {
			Class.forName(CONTROLADOR);
		} catch (ClassNotFoundException e) {
			System.out.println("Error al cargar el controlador");
			e.printStackTrace();
		}
	}
	
	public Connection conectar() {
		Connection conexion = null;
		
		try {
			conexion = DriverManager.getConnection(URL, USUARIO, CLAVE);
			System.out.println("Conexión OK");

		} catch (SQLException e) {
			System.out.println("Error en la conexión");
			e.printStackTrace();
		}
		
		return conexion;
	}
}
				
			

TestConexion.java

				
					import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestConexion {
	public static void main(String[] args) {
		Conexion conexion = new Conexion();
		Connection cn = null;
		Statement stm = null;
		ResultSet rs = null;
		
		try {
			cn = conexion.conectar();
			stm = cn.createStatement();
			rs = stm.executeQuery("SELECT * FROM usuario");
			
			while (rs.next()) {
				int idUsuario = rs.getInt(1);
				String usuario = rs.getString(2);
				String clave = rs.getString(3);
				
				System.out.println(idUsuario + " - " + usuario + " - " + clave);
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
			
		} finally {
			try {
				if (rs!= null) {
					rs.close();
				}
				
				if (stm != null) {
					stm.close();
				}
				
				if (cn != null) {
					cn.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		
	}
}
				
			

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar estos tags HTML y atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>