JDBC: Conectar Java con PostgreSQL
Publicado por oftc007 en Mayo 23, 2008
JDBC (Java Data Base Connectivity), es el API para la conexión a bases de datos desde el lenguaje Java, lo que nos permite ejecutar operaciones sobre bases de datos, realizando estas operaciones con lenguaje SQL de la base de datos.
Para realizar esta conexion aparte de conocer el lenguaje Java y tener todo lo necesario para compilar y ejecutar programas en este lenguaje, necesitamos tener instalado del driver JDBC en nuestra PC, para eso vamos al gestor de paquetes synaptic y descargamos el paquete
libpg-java
Luego que tenemos el driver instalado, creamos un archivo con nuestro editor de texto preferido y pegamos el siguiente codigo:
import java.sql.*;class conexion{
public static void main(String[] args)
{
String driver = “org.postgresql.Driver”;
String connectString = “jdbc:postgresql://localhost:5432/Taller”;
String user = “of”;
String password = “1234″;try{
Class.forName(driver);
Connection con = DriverManager.getConnection(connectString, user , password);
Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(”SELECT * FROM cabecera_trabajo”);
while (rs.next()){
System.out.println(”CEDULA ” + rs.getString(”cedula_cliente”));
}stmt.close();
con.close();}
catch ( Exception e ){
System.out.println(e.getMessage());
}
}
}
Luego de eso guardamos el archivo con el nombre de “conexion.java”, o el nombre que quieran, pero siempre poniendo al final “.java”.
Pasemos a explicar las partes mas resaltantes del codigo para entender que estamos haciendo.
Lo primero que hacemos es darle un nombre a nuestra clase, que debe coincidir con el nombre del archivo, luego de eso agregamos el codigo en el main.
String driver = "org.postgresql.Driver";
String connectString = “jdbc:postgresql://localhost:5432/Taller”;
String user = “of”;
String password = “1234″;
En esta parte del codigo estamos declarando e inicializando variables del tipo string con toda la informacion necesaria para la conexion a la base de datos, primero tenemos el nombre del driver que es “org.postgresql.Driver”, luego un string donde colocamos la base de datos donde nos queremos conectar, siguiendo el formato:
jdbc:postgreslq://ubicacion_de_BD:puerto/nombre_BD
Luego tenemos el string con el username y password necesarios para conectarnos a la base de datos.
Class.forName(driver);
Connection con = DriverManager.getConnection(connectString, user , password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(”SELECT * FROM cabecera_trabajo”);
Cargamos el driver en memoria con la funcion “Class.forName”, pasandole como parametro el string donde asignamos el nombre del driver que queremos usar.
Luego de eso definimos un objeto del tipo “connection” para realizar la conexion con la base de datos, la funcion encargada de hacer la conexion es “DriverManager.getConnection”, que recibe como parametros el string con la informacion de la base de datos, y los string de username y password.
Luego de eso definimos un objeto del tipo Statement, el cual nos permitira realizar las diferentes operaciones sobre nuestra base de datos mediante sentencias SQL.
Posteriormente definimos un objeto del tipo “ResultSet” (hoja de resultados), donde almacenaremos el resultado del query que ejecutemos. Para ejecutar el query usamos la funcion “executeQuery”, que recibe como parametros un string que contenga la setencia del query que queremos ejecutar.
while (rs.next()){
System.out.println(”CEDULA ” + rs.getString(”cedula_cliente”));
}
Ya que tenemos el resultado que arrojo el query en nuestro objeto del tipo “ResultSet”, debemos mover el apuntador, para recorrer todas las tuplas que devolvio el query. Para mover el apuntador usamos la funcion “next()”, la cual colocamos como condicion de un while (mientras existan tuplas que mostrar), y vamos imprimiendo en pantalla el campo o campos que queremos mostrar.
La funcion para obtener los datos de la hoja de resultados es “getString”, que recibe como parametro un string con el nombre del campo que queremos mostrar, este nombre debe ser identico (respetando mayusculas y minisculas) a como esta definido en nuestra base de datos.
stmt.close();
con.close();
Por ultimo cerramos el “Statement” y la conexion a la base de datos.
catch ( Exception e ){
System.out.println(e.getMessage());
}
Como un ultimo detalle, observamos en el codigo que tenemos un try, el cual captura una excepcion (error) que suceda tanto al momento de hacer la conexion o ejecutar el query, la cual la capturamos en la variable e, que se imprimira en pantalla.
Ya que tenemos guardado nuestro archivo, desde un terminal vamos al directorio donde lo guardamos y lo compilamos.
javac conexion.java
Para ejecutarlo, debemos especificarle al classpath que queremos usar el driver jdbc por lo que le diremos la ubicacion la cual es: /usr/share/java.
java -cp .:/usr/share/java/postgresql.jar conexion

Mayo 26, 2008 en 8:51 pm
escapao!!!!!!!!! a mi me funciono perfecto, solo queria aclarar que las comillas me daban bateo, por si le sucede a alguien mas, solo cambien las comillasde acuerdo a la distribucion de su teclado…gracias hombre,me salvaste la vida
Junio 25, 2008 en 1:26 pm
Junio 27, 2008 en 4:50 pm
donde puedo encontrar el JDBC ????
Junio 27, 2008 en 5:08 pm
@ Gerardo Vazquez Sanchz
Tu codigo se ve bien, en la salida de tu programa no se muestra ningun error?. El unico lugar donde puede haber un posible error, es al momento de traerte el valor, ya que estas usando “getString” y es posible que ese campo sea de otro tipo de dato. Revisa las otras funciones para traer los diferentes tipos de datos.
@ Tany
Descargando el paquete “libpg-java” desde Synaptic o un terminal ya tienes JDBC en tu PC.
Saludos!
Agosto 13, 2008 en 2:13 pm
Buen Día …
Muy buen aporte, pero tengo una duda,
La base de datos a la que tengo que acceder tiene 4 esquemas, me podrías hechar una mano para saber en que parte debo especificar el esquema que tengo que acceder.