Conectando PostgreSQL y Java

Acá vengo con un ejemplo bastante básico de cómo hace una conexión entre el motor de base de datos llamado PostgreSQL y Java.
Siguiendo con el mismo mismo mecanismo del blog vamos a empezar con el primer paso que sería registrar el driver que puede ser descargado desde la página oficial jdbc de PostgreSQL:

try {
    Class.forName("org.postgresql.Driver");
  } catch (ClassNotFoundException cnfe) {
    System.out.println("NO se puedo encontrar el driver!");
    System.out.println("Vamos a imprimir el error...");
    cnfe.printStackTrace();
    System.exit(1);
  }
System.out.println("El driver se registro correctamente, hagamos una conexion...");

Si no hubo ningún problema se debería imprimir el mensaje “El driver se registro correctamente, hagamos una conexion…“.

Ahora, para crear la conexión se necesitan los datos básicos de siempre: host, nombre de la base de datos, usuario y contraseña, en mi caso la información ha quedado de la siguiente manera:

host: localhost
nombre de la base de datos: myjsp
usuario: postgres
contraseña: DB.cnsl8_2x.mnFRD

La conexión se crea a partir de un objeto Connection así:

Connection c = DriverManager.getConnection("jdbc:postgresql://localhost/myjsp", "postgres", "DB.cnsl8_2x.mnFRD");

Luego se procede a hacer el objeto Statement que se encarga de ejecutar la consulta SQL al motor de PostgreSQL para que luego atrapar el resultado en un objeto ResulSet y apartir de él reccorer el resultado e imprimir su contenido, Quedaría:

PreparedStatement s = c.prepareStatement("select id_hola from hola");
ResultSet r = s.executeQuery();

Ahora con un ciclo se recorre el contenido del ResulSet, el cual tiene el resultado de la consulta a la base de datos:

while (r.next())
          System.out.println(r.getInt(1));

El ejemplo completo quedaría de la siguiente manera:

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

public class Principal {

    public static void main(String[] args) {
        System.out.println("Chequeando el driver si esta dentro de los manejadores de drivers....");

  try {
    Class.forName("org.postgresql.Driver");
  } catch (ClassNotFoundException cnfe) {
    System.out.println("NO se puedo encontrar el driver!");
    System.out.println("Vamos a imprimir el error...");
    cnfe.printStackTrace();
    System.exit(1);
  }

  System.out.println("El drver se registro correctamente, hagamos una conexion...");

  Connection c = null;

  try {
    // The second and third arguments are the username and password,
    // respectively. They should be whatever is necessary to connect
    // to the database.
    c = DriverManager.getConnection("jdbc:postgresql://localhost/myjsp",
                                    "postgres", "DB.cnsl8_2x.mnFRD");
    PreparedStatement s = c.prepareStatement("select id_hola from hola");
    ResultSet r = s.executeQuery();
    while (r.next())
          System.out.println(r.getInt(1));
  } catch (SQLException se) {
    System.out.println("Couldn't connect: print out a stack trace and exit.");
    se.printStackTrace();
    System.exit(1);
  }

  if (c != null)
    System.out.println("Hooray! We connected to the database!");
  else
    System.out.println("We should never get here.");
  }

}

Acá adjunto la clase completo de la conexión: ejemplo_postgreSQL-java.java

Leave a Reply