miércoles, 29 de mayo de 2013

Cómo usar Postgresql con Hibernate en Netbeans

Cuando empezamos a trabajar con Java, la mayoría de ejemplos que encontramos están relacionados con MySQL. Es por esta razón que en este artículo voy a mostrarles la manera de conectar Postgresql con Hibernate utilizando Netbeans y, fiel a mi estilo, al final del post les dejaré código fuente que podrán descargar y reutilizar.

Empezemos creando nuestra base de datos, para lo cual podemos usar el pgAdmin. Una imágen vale más que mil palabras así que les dejaré la secuencia de imágenes de cómo crear la base de datos. Prime iniciamos el pgAdmin tal como se muestra en la siguiente imagen:


Nos conectamos al servidor de base de datos.


Ingresamos nuestra contraseña.


Creamos una base de datos tal como se muestra a continuación:


Para este caso la nombramos rolandopalermo.


Y creamos una nueva tabla.


A la que llamaremos usuario.


Ingresamos las columnas de nuestra tabla, en este caso el id.


Luego de haber ingresado todas las columnas, deberíamos tener algo como esto:


Y definimos que la columna id será nuestra clave primaria.



También les dejo las sentencias SQL:
-- Table: usuario

-- DROP TABLE usuario;

CREATE TABLE usuario
(
  id serial NOT NULL,
  nombres "char"[],
  apellidos "char"[],
  fecha_registro date,
  CONSTRAINT usuario_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE usuario
  OWNER TO postgres;

Con esto ahora crearemos un proyecto Java en Netbeans al que llamaremos HibernateConPostgresql.



Y creamos el archivo de configuración de Hibernate.







Y luego generamos el archivo hibernate.reveng para poder hacer el proceso de ingeniería inversa.




Y finalizamos el asistente. Ahora solo resta generar los POJOS, para lo cual primero necesitamos crear un paquete, al que llamaremos com.rolandopalermo.blog.demo.




Una vez creados los POJOS creamos la secuencia de generación de id's en postgresql, para lo cual ejecutamos la siguiente sentencia SQL:


Seleccionando la opción CREATE Script de nuestra base de datos, tal como se muestra en la siguiente imagen:


Y la asociamos a nuestro archivo Usuario.hbm.xml agregando la secuencia asociada a nuestra tabla en el modo de generación del id, quedándo el archivo de la siguiente manera:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 13-jun-2013 0:21:51 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="com.rolandopalermo.blog.demo.Usuario" table="usuario" schema="public">
        <id name="id" type="int">
            <column name="id" />
            <generator class="sequence">
                <param name="sequence">usuario_id_seq</param>
            </generator>
        </id>
        <property name="fechaRegistro" type="date">
            <column name="fecha_registro" length="13" />
        </property>
        <property name="nombres" type="string">
            <column name="nombres" />
        </property>
        <property name="apellidos" type="string">
            <column name="apellidos" />
        </property>
    </class>
</hibernate-mapping>
Adicionalmente creamos un método Main, en donde se mostrará la forma de guardar un registro de usuario en la base de datos:
/**
 *
 * @author Rolando
 */
public class Main {
    
    public static void main(String[] args) {
        UsuarioDaoHibernate usuarioDAO = new UsuarioDaoHibernate();
        Usuario usuario = new Usuario();
        usuario.setNombres("Rolando Palermo");
        usuario.setApellidos("Rodríguez Cruz");
        usuario.setFechaRegistro(new Date());
        usuarioDAO.save(usuario);
    }
}
Y como mencioné hace un momento, aquí les dejo el proyecto hecho en Netbeans.

Descargar

Espero que todo sea claro y de utilidad para todos, hasta una próxima oportunidad.

6 comentarios:

Anónimo dijo...

Muy bueno este blog. Quisiera saber como generar los hbms desde las clases creadas utilizando netbeans y el hibernate.cfg

Elvis Huacachi C. dijo...

Respondiendo a tu pregunta para generar el archivo hbms es creando los Pojos
es decir New - Other - Hibernate - Hibernate Mapping files and POJOs
se crean 2 archivos por defecto hbm.xml y un archivo java.

y para generar el archivo hibernate.cfg
New - Other - Hibernate -Hibernate Mapping files and POJOs

Saludos

Rene Marco Gudmunddsson dijo...

hola, muy ilustrativo, mira esta pregunta la he echo en muchas partes pero nadie me responde, uso hibernate, postgresQL, JSF, al punto dos entidades relacionadas uno a muchos, usando estructura o patron DAO, podrias reliazar un ejemplo simple para que a traves del padre pueda mostrar al objeto hijo, o crear un hijo usando o dentro la sesion de padre..(DE veras necesito iliminacion!!!)

Juanky dijo...

Hola, tengo una pregunta descargue el proyecto y hay un paquete llamado "com.rolandopalermo.blog.hbn", segui los pasos del tuto y no veo donde se crea el paquete ni los archivos internos. Saludos

Domenico Ferraguto dijo...

Muy interesante lo aplicare a uno de mis proyectos.. saludos

Camila Blanc dijo...

Genio!!! EL mejor tutorial!
Muchisimas gracias por existir!

Publicar un comentario