Origen(Data);

Conectar Java con una base de datos PostgreSQL

Para poder usar una base de datos en programas escritos en Java, es necesarios hacer uso de JDBC que es una API que nos ofrece las librerías para trabajar con base de datos, también de PgJDBC que es un controlador JDBC que permite que los programas Java se conecten a una base de datos PostgreSQL. Para poder usar PgJDBC tendremos que descargarlo desde el sitio oficial:

Habiendo descargado el archivo con extensión .JAR, solo seria de añadir la librería externa al IDE de tu preferencia para poder compilar el porgrama Java, en este ejemplo utilizare la versión 42.1.1 de PgJDBC.

Para esta práctica he creado una base de datos llamada BD_Java con una tabla llama CDS y la otra Cantantes, puedes ver las tablas representadas en un diagrama de entidad relación en la siguiente imagen:

new_database

He llenado los campos de la tabla CDS y Cantantes con los siguientes datos:

BD_Java=# SELECT * FROM "CDS"
ORDER BY "cdsId" ASC;
 cdsId |           cdsTitulo            | cdsCantante | cdsDuracion 
-------+--------------------------------+-------------+-------------
     1 | The Imitation Game             |           1 |          60
     2 | X-Men Days of Future Past      |           2 |          80
     3 | The Amazing Spider-Man 2       |           4 |          40
     4 | Dawn Of The Planet Of The Apes |           3 |          55
     5 | The Amazing Spider Man         |           2 |          63
     6 | Batman Begins                  |           4 |          67
(6 rows)

BD_Java=# SELECT * FROM "Cantante"
ORDER BY "canId" ASC;
 canId |     canNombre     
-------+-------------------
     1 | Alexandre Desplat
     2 | John Ottman
     3 | Michael Giacchino
     4 | Hans Zimmer
     5 | James Horner
(5 rows)

Tomaré la siguiente consulta para aplicarlo en un programa en Java:

BD_Java=# SELECT "cdsId", "cdsTitulo", "canNombre"
FROM "CDS", "Cantante"
WHERE "canId"="cdsCantante"
ORDER BY "cdsId" ASC;
 cdsId |           cdsTitulo            |     canNombre     
-------+--------------------------------+-------------------
     1 | The Imitation Game             | Alexandre Desplat
     2 | X-Men Days of Future Past      | John Ottman
     3 | The Amazing Spider-Man 2       | Hans Zimmer
     4 | Dawn Of The Planet Of The Apes | Michael Giacchino
     5 | The Amazing Spider Man         | John Ottman
     6 | Batman Begins                  | Hans Zimmer
(6 rows)

En el siguiente código se muestra una representación de como se realizaría la conexión de base de datos para luego ejecutar la consulta y que me muestre un mensaje de salida.

package pack;
import java.sql.*;
public class main {
public static void main(String[] args)  {
 
    Connection BaseDatos = null;
    Statement st = null;
 
    //Donde se localiza la base de datos
    String url="jdbc:postgresql://localhost:5433/BD_Java";
 
    //Credenciales de la base de datos
    String usuario="postgres";
    String contrasena="@postgres";
 
    try {
        //Conexion con la base de datos
        BaseDatos = DriverManager.getConnection(url, usuario, contrasena);
 
        // Se hara una consulta  de la tabla CDS y Cantante, y se mandara a imprimir.
        st = BaseDatos.createStatement();
        ResultSet rs = st.executeQuery( ""
            + "SELECT \"cdsId\", \"cdsTitulo\", \"canNombre\" "
            + "FROM \"CDS\", \"Cantante\" "
            + "WHERE \"canId\"=\"cdsCantante\" "
            + "ORDER BY \"cdsId\" ASC;" );
 
        while    ( rs.next() ) {
 
            int id = rs.getInt("cdsId");
            String  titulo= rs.getString("cdsTitulo");
            String cantNom= rs.getString("canNombre");
 
            System.out.println( "[ FILA #" + id+" ]" );
            System.out.println( "Titulo del CD: " + titulo );
            System.out.println( "Artista: " + cantNom );
            System.out.println();
        }
 
        rs.close();
        st.close();
        BaseDatos.close();
    } catch (Exception e) {
        System.err.println( e.getMessage() );
        }
    }
 
}

Así es como quedaría el mensaje de salida al ejecutar el programa:

[ FILA #1 ]
Titulo del CD: The Imitation Game
Artista: Alexandre Desplat

[ FILA #2 ]
Titulo del CD: X-Men Days of Future Past
Artista: John Ottman

[ FILA #3 ]
Titulo del CD: The Amazing Spider-Man 2
Artista: Hans Zimmer

[ FILA #4 ]
Titulo del CD: Dawn Of The Planet Of The Apes
Artista: Michael Giacchino

[ FILA #5 ]
Titulo del CD: The Amazing Spider Man
Artista: John Ottman

[ FILA #6 ]
Titulo del CD: Batman Begins
Artista: Hans Zimmer

Si quieres consultar mas información sobre PostgreSQL JDBC Driver dejare el link de la documentación:

Licencia Creative Commons

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional.

Licencia Creative Commons

Descubre cómo puedes contribuir a mi blog con donaciones. Tus recompensas me ayudan a seguir creando contenido valioso para la comunidad. Con tan solo un par de clics, puedes marcar la diferencia y apoyarme. ¡Apoya ahora!. 🚀🔥

3 respuestas a “Conectar Java con una base de datos PostgreSQL”

  1. hola bueno intente hacerlo con intelliJ pero me sale el error No suitable driver found for jdbc:postgresql://localhost:5433/BD_java nose como arreglarlo serias muy amable al aadyuarme gracias

    Me gusta

    1. No he usado intellij pero verifica en la documentación del mismo para guiarte de como cargar correctamente el driver de postgres, y comprueba si tienes creada la base de datos «BD_java»

      Me gusta

Deja un comentario

Crea una web o blog en WordPress.com