Hacer mvn clean install y mvn eclipse:eclipse. Refrescar el proyecto en eclipse para que tome los cambios.
Generar clase y su mapeo:
Creeamos una clase persona:
package com.ejemplo;
/**
* @author emanuel
*
*/
public class Persona {
private Long id;
private String nombre;
private String apellido;
public Persona(String nombre, String apellido) {
super();
this.nombre = nombre;
this.apellido = apellido;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
//Constructor usado por hibernate
protected Persona() { }
}
Ahora creamos el archivo de mapeo, el cual es un archivo .xml el cual es deseable (no obligatorio) que se llame igual que la clase que mapea y se encuentre en la carpeta resources con la estructura de paquete que tiene la clase, por lo tanto el path sería:
main/resources/com/ejemplo/persona.hbm.xml y el archivo sería como el siguiente:
Configurar hibernate:
Para configurar hibernate es necesario generar un archivo hibernate.cfg.xml y guardarlo en la carpeta resources. Este archivo contendra la siguiente información:
Ahora vamos a crear una clase util, la cual sera encargada de generar las sessiones de Hibernate:
package com.ejemplo.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
Crear un test:
Vamos a generar un test para probar como todo funciona:
package com.ejemplo;
import static org.junit.Assert.*;
import java.util.List;
import org.hibernate.classic.Session;
import org.junit.Test;
import com.ejemplo.util.HibernateUtil;
public class HibernateTest {
@Test
public void test() {
Persona persona = new Persona("Juan","Rodriguez");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(persona);
session.flush();
List personas = session.createQuery("from Persona").list();
assertFalse(personas.isEmpty());
Persona personaGuarda = (Persona) session.get(Persona.class, persona.getId());
assertEquals(persona, personaGuarda);
}
}
Crear esquema en la base de datos:
Es necesario escribir un esquema llamado prueba en la base de datos Mysql.