hibernate

Páginas: 21 (5157 palabras) Publicado: 28 de mayo de 2013
ORM
Profesor Vladimir Bataller

ORM
(Mapeador
Objeto-Relacion)

Mientras que las aplicaciones trabajan con objetos, la información
de dichos objetos se guarda en las estructuras relacionales de las
bases de datos. Las herramientas ORM proporcionan mecanismos
de automatización de la correspondencia entre objetos y las bbdd.

Por ejemplo: Si una aplicación tiene objetos Cliente queademás de nombre y apellidos
almacenan una colección de Telefono, a la hora de actualizar esta información en la bbdd,
esta se deberá traducir en dos tablas Clientes y Telefonos que mantendrán una relación de
clave externa.
Sun proporciona una especificación llamada JDO (Java Data Objects) que establece un
estándar sobre herramientas ORM. Las herramientas más destacadas que implementan dichaespecificación son:
• Hibernate.
• Apache ObJectRelationalBridge (OJB).
Uno de los aspectos más destacados de JDO es su sencillez pues emplea clases java planas
(POJO) para los objetos persistentes. La vinculación entre objetos y la bbdd relacional se
realiza mediante archivos xml.

Hibernate
Profesor Vladimir Bataller

Hibernate

Hibernate es una herramienta ORM de código abierto.(http://www.hibernate.org)

Pasos para trabajar con Hibernate
1.- Crear la bbdd.
2.- Crear un Javabean(Clase Java que implementa la interface Serializable,
tiene un constructor sin parámetros y tiene metodos get y set para sus atributos).
3.- Crear un archivo de mapeo que indique la correspondencia entre el bean y una
tabla de la bbdd.
4.- Crea un archivo de propiedades con la configuración JDBCpara acceder a la bbdd.
5.- Incluir en el CLASSPATH las bibliotecas de Hibernate.
5.- Usar el Hibernate API para leer y escribir objetos persistentes.
A continuación se detallan estos pasos, excepto el primero que se supone conocido por el
alumno.

1

Hibernate
Profesor Vladimir Bataller

El Javabean

Se creará un javabeans por cada tabla de la bbdd con
la que queramos intercambiarinformación.

Un javabean es una clase con métodos get y set para acceder a sus atributos, con un
constructor sin parámetros y que implementa la interface Serializable.
Cada atributo del javabean representa a un campo de la bbdd.
package clientes;
public class Cliente implements Serializable
{
private int dni;
private String nombre;
private String apellidos;
private double saldo;public Cliente() {super();}
public String getApellidos() {return apellidos;}
public void setApellidos(String apellidos) {this.apellidos = apellidos;}
...
public String toString() {
return "dni:" + dni + " Nombre:" + nombre + " Apellidos:"
+ apellidos + " Saldo:" + saldo ;}
}

Hibernate
Profesor Vladimir Bataller

Archivo de Mapeo

Establece la correspondencia entre los beans y lastablas de la bbdd. Se le asignará el nombre de la
Clase seguido de la extensión “hbm.xml”

Cliente.hbm.xml









ó



Nota: Si el atributo fetch toma el valor select (valor por defecto), hará una consulta para
obtener los datos del Cliente y una consulta para obtener los teléfonos relacionados. Si por el
contrario fetch toma el valor join, hibernate obtiene con una sola consulta(left outer join) los
datos del cliente y sus teléfonos. Esto también se puede forzar en tiempo de ejecución
mediante HQL:
List lista = session.createQuery("from Cliente as c left join fetch c.telefonos").list();

Hibernate
Profesor Vladimir Bataller

Ejemplo de inserción de un telefono a un cliente.
Asociaciones 1 a n
(IV)
// Obtenemos un cliente
Cliente cliente = (Cliente)session.get(Cliente.class, new Integer(1781) );
// Creamos un Telefono
Telefono tel =new Telefono();
tel.setTelefono("6" + (int)(1000000*Math.random()));
tel.setDescripcion("Movil");
tel.setDni(1781);
System.out.println("Se va a guardar: " + tel.getTelefono());
session.save(tel);
// Enviamos la consulta SQL a la bbdd.
session.flush();
// Leemos el cliente de la bbdd para que tenga el nuevo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • HIBERNATE
  • Hibernate
  • hibernate
  • Hibernate
  • Tutorial Hibernate
  • Hibernate referencia
  • Hibernate
  • Hibernate

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS