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