Java – Conexión a base de datos con JDBC

En este ejemplo nos conectaremos a una base de datos MariaDB con JDBC para hacer obtener los datos de un query SELECT a una tabla de “Usuarios”.  Antes que nada debes saber que existen prácticas para hacer más eficiente la conexión recurrente a una base de datos, una de las más comunmente usadas son el uso de spools de conexiones, que te permiten optimizar las conexiones y son el método estandar en aplicaciones empresariales.  Este ejemplo es para que aprendas a hacer la conexión básica y no necesariamente es la forma óptima, esto dependerá de las necesidades de tu proyecto.

Hemos creado una base de datos de ejemplo llamada “Pruebas” con una sola tabla.

Esta es la tabla que creamos:

CREATE TABLE Usuarios (
  ID int(11) NOT NULL AUTO_INCREMENT,
  USERNAME varchar(100) NOT NULL,
  PASSWORD varchar(100) NOT NULL,
  NOMBRE varchar(100) DEFAULT NULL,
  PRIMARY KEY (ID)
)

Agregamos algunos datos:





Para el código en Java esta es la dependencia de Maven para el driver de MariaDB:

<dependency>
 <groupId>org.mariadb.jdbc</groupId>
 <artifactId>mariadb-java-client</artifactId>
 <version>2.2.3</version>
</dependency>

Vamos al código.

package com.decodigo.ejemplos;

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

/**
 *
 * @author decodigo
 */
public class ConexionMariaDB {

    private static final String DRIVER = "org.mariadb.jdbc.Driver";
    private static final String URL_CONEXION = "jdbc:mariadb://localhost:3306/Pruebas";

    public static void main(String args[]) throws SQLException {
        final String usuario = "user_db";
        final String password = "password_db";
        Connection dbConnection = null;
        Statement statement = null;
        try {
            Class.forName(DRIVER);

            Connection conn = DriverManager.getConnection(URL_CONEXION, usuario, password);
            String selectTableSQL = "SELECT ID,USERNAME,PASSWORD,NOMBRE FROM Usuarios";
            statement = conn.createStatement();
            ResultSet rs = statement.executeQuery(selectTableSQL);
            while (rs.next()) {
                String id = rs.getString("ID");
                String usr = rs.getString("USERNAME");
                String psw = rs.getString("PASSWORD");
                String nombre = rs.getString("NOMBRE");
                System.out.println("userid : " + id);
                System.out.println("usr : " + usr);
                System.out.println("psw : " + psw);
                System.out.println("nombre : " + nombre);
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        } finally {
            if (statement != null) {
                statement.close();
            }
            if (dbConnection != null) {
                dbConnection.close();
            }
        }
    }   
}

Hay varias cosas que debes entender de este código.  La primera es que deberás cargar en el ambiente de Java, el driver que será el encargado de gestionar la conexión con la base de datos y existe uno para cada base de datos.

private static final String DRIVER = “org.mariadb.jdbc.Driver”;

Class.forName(DRIVER);

Los segundo es la URL de conexión.  Esta también se forma dependiendo de la base de datos, aunque el formato es similar para bases de datos distintas.

private static final String URL_CONEXION = “jdbc:mariadb://localhost:3306/Pruebas”;

Con la url, el usuario y el password, creamos una conexión.

Connection conn = DriverManager.getConnection(URL_CONEXION, usuario, password);

Con la conexión, creamos una sentencia y es esta sentencia la que nos permite especificar la forma que tendrá nuestra consulta SQL.

String selectTableSQL = “SELECT ID,USERNAME,PASSWORD,NOMBRE FROM Usuarios”;

statement = conn.createStatement();

ResultSet rs = statement.executeQuery(selectTableSQL);

El resultado es un objeto Resulset que contiene los datos de nuestra consulta.

while (rs.next()) {…}

Debes ser cuidadoso al recuperar en variables de Java los datos de tu consulta, usando los nombres de las columnas que has incluido en el query.

String id = rs.getString(“ID”);

String usr = rs.getString(“USERNAME”);

String psw = rs.getString(“PASSWORD”);

String nombre = rs.getString(“NOMBRE”);

Al ejecutar el código obtendrás los datos de la tabla Usuarios.

Una observación importante: Debes cerrar la sentencia y la conexión una vez que has dejado de usarlas.

if (statement != null) { statement.close(); }

if (dbConnection != null) { dbConnection.close(); }

Es un ejemplo muy sencillo y desde luego la operación de consulta no es la única que puedes hacer en JDBC, puedes actualizar o insertar registros nuevos.  Puedes eliminar o crear tablas nuevas, pero ya las veremos en otro ejemplo proximamente.

Deja un comentario

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