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:
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:
Deja un comentario