Conectar Java con una base de datos PostgreSQL

java_postgresqlPara 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:

Anuncios

Un comentario en “Conectar Java con una base de datos PostgreSQL

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s