Creando una clase de conexión a MySQL en Java

 

Cuando comencé a aprender Java, una de las primeras tareas fue conectarme a una base de datos MySQL. Para ello, normalmente se crea una clase encargada de centralizar la configuración de la conexión y entregar objetos Connection al resto de la aplicación.

Un ejemplo simple es el siguiente:

package com.egga.appvet.includes;

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

public class ConexionBD {

    private static final String URL = "jdbc:mysql://localhost:3306/AppVet";
    private static final String USER = "tuusuario";
    private static final String PASS = "tupassword@";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASS);
    }
}

En este ejemplo se definen tres constantes:

  • URL: dirección de la base de datos MySQL.

  • USER: usuario utilizado para conectarse al servidor.

  • PASS: contraseña del usuario.

El método getConnection() devuelve una instancia de Connection, permitiendo que otras clases puedan realizar consultas, inserciones, modificaciones o eliminaciones de datos.

Una de las ventajas de este enfoque es que la configuración de la conexión queda centralizada en un solo lugar. Si en algún momento cambia el servidor, el nombre de la base de datos o las credenciales de acceso, basta con modificar esta clase sin afectar el resto de la aplicación.

En versiones modernas de Java, el controlador JDBC de MySQL se registra automáticamente al iniciar la aplicación, por lo que normalmente no es necesario utilizar instrucciones como Class.forName(), algo que era común en versiones más antiguas.


Utilizando la clase de conexión

Una vez creada la clase ConexionBD, podemos utilizarla desde otras clases para interactuar con la base de datos.

Supongamos que queremos obtener una lista de mascotas almacenadas en la tabla mascotas. Para ello podemos crear una clase que utilice la conexión proporcionada por ConexionBD.

package com.egga.appvet.mascotas;

import com.egga.appvet.includes.ConexionBD;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ListarMascotas {

    public void listar() {

        String sql = "SELECT idmascota, nombre FROM mascotas";

        try (Connection conn = ConexionBD.getConnection();
             PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery()) {

            while (rs.next()) {
                System.out.println(
                    rs.getInt("idmascota") + " - " +
                    rs.getString("nombre")
                );
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

En este ejemplo se utiliza el método getConnection() para obtener una conexión a la base de datos. Posteriormente se crea un PreparedStatement para ejecutar la consulta SQL y un ResultSet para recorrer los registros obtenidos.

El uso de try-with-resources permite que la conexión, la consulta y el conjunto de resultados se cierren automáticamente al finalizar el bloque, evitando fugas de recursos y simplificando el código.

De esta manera, la clase ConexionBD queda encargada exclusivamente de la conexión, mientras que las clases de negocio se concentran en realizar las operaciones necesarias sobre los datos.



Comentarios

Entradas populares de este blog

Boleta Electrónica en Chile: Los 3 Ambientes del SII para Desarrolladores

Configurando Servlets y JSP en Jetty

GUIA GENERAL DE GENERACION DE DOCUMENTOS TRIBUTARIOS ELECTRONICOS