Conectar con PostgreSQL utilizando el driver JDBC – Java PostgreSQL JDBC

Conectar con PostgreSQL utilizando el driver JDBC - Java PostgreSQL JDBC

Vamos a ver un ejemplo básico para establecer una conexión con PostgreSQL JDBC, usaremos el driver JDBC de Java para conectar con la base de datos de PostgreSQL.

  1. Descarga e instalación el driver de PostgreSQL
  2. Establecemos una conexión básica
  3. Creamos un método para establecer una conexión genérica


 

1. Descarga e instalación el driver de PostgreSQL

Lo primero que necesitamos para conectar con una base de datos es descargar el driver (descargalo aquí) e incorporarlo a nuestro proyecto, en mi caso estoy utilizando Netbeans, puedes ver un ejemplo de como añadir una librería en Netbeans añadir librería Apache Poi Java API, ya que el proceso es el mismo para cualquier librería.

Si necesitas información para la instalación de PostgreSQL la puedes encontrar en mi guía en el apartado: Instalación de Postgresql e Instalación de Pgadmin


 

2. Establecemos una conexión básica

Establecemos la conexión en dos pasos:

En el primero registramos el driver:

            // We register the PostgreSQL driver
            // Registramos el driver de PostgresSQL
            try { 
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de PostgreSQL: " + ex);
            }

En el segundo establecemos la conexión utilizando la clase java.sql.DriverManager, simplemente rellenamos los datos de url : “jdbc:postgresql://192.168.0.26:5432/customerdb” , usuario : “xulescode” y password : “xulescode”, quedando así:

            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:postgresql://192.168.0.26:5432/customerdb",
                    "xulescode", "xulescode");

Para finalizar simplemente añadimos el método de comprobación de conexión válida boolean valid = connection.isValid(50000); para mostrar un mensaje por pantalla, el código final es el siguiente:

package org.xulescode.database;

import java.sql.*;

/**
 * Basic connection to PostgreSQL database. 
 * Conexión básica a la base de datos PostgreSQL.
 *
 * @author Xules You can follow me on my website http://www.codigoxules.org/en
 * Puedes seguirme en mi web http://www.codigoxules.org).
 */
public class JavaPostgreSQLBasic {

    /**
     * We establish the connection with the database <b>customerdb</b>.
     * Establecemos la conexión con la base de datos <b>customerdb</b>.
     */
    public void connectDatabase() {
        try {
            // We register the PostgreSQL driver
            // Registramos el driver de PostgresSQL
            try { 
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de PostgreSQL: " + ex);
            }
            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:postgresql://192.168.0.26:5432/customerdb",
                    "xulescode", "xulescode");

            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error: " + sqle);
        }
    } 
    /**
     * Testing Java PostgreSQL connection with host and port
     * Probando la conexión en Java a PostgreSQL especificando el host y el puerto.
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JavaPostgreSQLBasic javaPostgreSQLBasic = new JavaPostgreSQLBasic();
        javaPostgreSQLBasic.connectDatabase(); 
    }
}


 

3. Creamos un método para establecer una conexión genérica

Creamos un método para establecer una conexión genérica pasando parámetros, lo que nos vamos a permitir reutilizarlo para múltiples bases de datos. Sin complicarnos muchos añadimos este código a la clase anterior:

/**
     * Method to connect to the database by passing parameters.
     * Método para establecer la conexión a la base de datos mediante el paso de parámetros.
     * 
     * @param host <code>String</code> host name or ip. Nombre del host o ip.
     * @param port <code>String</code> listening database port. Puerto en el que escucha la base de datos.
     * @param database <code>String</code> database name for the connection. Nombre de la base de datos para la conexión.
     * @param user <code>String</code> user name. Nombre de usuario.
     * @param password  <code>String</code> user password. Password del usuario.
     */
    public void connectDatabase(String host, String port, String database,
            String user, String password) {
        String url = "";
        try {
            // We register the PostgreSQL driver
            // Registramos el driver de PostgresSQL
            try {
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de PostgreSQL: " + ex);
            }
            Connection connection = null;
            url = "jdbc:postgresql://" + host + ":" + port + "/" + database;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    url,
                    user, password);           
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) { 
            System.out.println("Error al conectar con la base de datos de PostgreSQL (" + url + "): " + sqle);
        }
    }

Este el código completo donde incluimos en el método main las pruebas de los dos métodos que hemos creado:

package org.xulescode.database;

import java.sql.*;

/**
 * Basic connection to PostgreSQL database. 
 * Conexión básica a la base de datos PostgreSQL.
 *
 * @author Xules You can follow me on my website http://www.codigoxules.org/en
 * Puedes seguirme en mi web http://www.codigoxules.org).
 */
public class JavaPostgreSQLBasic {

    /**
     * We establish the connection with the database <b>customerdb</b>.
     * Establecemos la conexión con la base de datos <b>customerdb</b>.
     */
    public void connectDatabase() {
        try {
            // We register the PostgreSQL driver
            // Registramos el driver de PostgresSQL
            try { 
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de PostgreSQL: " + ex);
            }
            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:postgresql://192.168.0.26:5432/customerdb",
                    "xulescode", "xulescode");

            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error: " + sqle);
        }
    }

    /**
     * Method to connect to the database by passing parameters.
     * Método para establecer la conexión a la base de datos mediante el paso de parámetros.
     * 
     * @param host <code>String</code> host name or ip. Nombre del host o ip.
     * @param port <code>String</code> listening database port. Puerto en el que escucha la base de datos.
     * @param database <code>String</code> database name for the connection. Nombre de la base de datos para la conexión.
     * @param user <code>String</code> user name. Nombre de usuario.
     * @param password  <code>String</code> user password. Password del usuario.
     */
    public void connectDatabase(String host, String port, String database,
            String user, String password) {
        String url = "";
        try {
            // We register the PostgreSQL driver
            // Registramos el driver de PostgresSQL
            try {
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de PostgreSQL: " + ex);
            }
            Connection connection = null;
            url = "jdbc:postgresql://" + host + ":" + port + "/" + database;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    url,
                    user, password);           
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) { 
            System.out.println("Error al conectar con la base de datos de PostgreSQL (" + url + "): " + sqle);
        }
    }

    /**
     * Testing Java PostgreSQL connection with host and port
     * Probando la conexión en Java a PostgreSQL especificando el host y el puerto.
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JavaPostgreSQLBasic javaPostgreSQLBasic = new JavaPostgreSQLBasic();
        javaPostgreSQLBasic.connectDatabase();
        javaPostgreSQLBasic.connectDatabase("192.168.0.26", "5432", "customerdb","xulescode", "xulescode");
    }
}

Documentación

Espero que te sea útil.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *