SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Hibernate
Hibernate
Hibernate es un framework de persistencia para mapeo
objeto/relacional para ambientes Java.
No solo se encarga del mapeo de clases Java a tablas de la
base de datos (y de regreso), sino que también maneja los
queries y recuperación de datos, lo que puede reducir de
forma significativa el tiempo de desarrollo.
Hibernate (2)
Hibernate se encarga de alrededor del 80% de las tareas
comunes relacionadas con la persistencia de datos,
manejando todos los problemas relativos con la base de
datos particular con la que estemos trabajando, de forma
transparente para nosotros como desarrolladores.
Hibernate (3)
Si cambiamos el manejador de base de datos no será
necesario que modifiquemos todo el SQL que ya
teníamos para adaptarse al SQL que maneja la nueva
base de datos. Solo será necesario modificar una
línea en un archivo de configuración de Hibernate, y
este se encargará del resto.
Mapeos con Hibernate
Existen dos formas en las que es posible realizar los
mapeos:
• Con archivos de mapeo en XML
• Con Anotaciones
Archivo de Configuración hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD
3.0//EN"
"http://www.hibernate.org/dtd/hibernate-
configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Aquí va nuestra configuración -->
</session-factory>
</hibernate-configuration>
Configuración de la Conexión
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost/curso_hibernate
</property>
<property name="connection.username">usuario</property>
<property name="connection.password">password</property>
<property name="connection.pool_size">1</property>
Propiedades Opcionales en el archivo
de configuración
<property name="dialect">
org.hibernate.dialect.MySQL5Dialect
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
¿Crear o no crear?
<property name="hbm2ddl.auto"></property>
• validate: Valida el esquema, no modifica la base de
datos.
• update: Actualiza el esquema en caso de que haya
cambios.
• create: Crea nuevamente el esquema al inicio de la
sesión, eliminando los datos que se encuentren en este.
• create-drop: Crea el esquema al inicio de la sesión
y lo elimina al final de este.
Clase a almacenar
public class Contacto implements Serializable
{
private long id;
private String nombre;
private String email;
private String telefono;
public Contacto()
{
}
public Contacto(String nombre, String email, String telefono)
{
this.nombre = nombre;
this.email = email;
this.telefono = telefono;
}
//Getters y Setters
}
Mapeando la clase en XML
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-
mapping-3.0.dtd">
<hibernate-mapping>
<class name="Contacto" table="CONTACTO">
<id name="id" column="ID">
<generator class="identity" />
</id>
<property name="nombre" type="string"
column="NOMBRE" />
<property name="email" />
<property name="telefono" />
</class>
</hibernate-mapping>
Session
La manera en la que nuestra aplicación interactúa con
Hibernate es a través de una instancia de
org.hibernate.Session.
El tiempo de vida de una sesión está atado a una
transacción lógica en la base de datos (una transacción
lógica puede abarcar varias transacciones físicas en la
base de datos).
Proporciona métodos para crear, leer, actualizar y
eliminar entidades.
Obteniendo una sesión
public class HibernateUtil{
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory =
new Configuration().configure().buildSessionFactory();
} catch (HibernateException he) {
System.err.println("Ocurrió un error en la
inicialización de la SessionFactory: " + he);
throw new ExceptionInInitializerError(he);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Sesiones y Transacciones
private Session sesion;
private Transaction tx;
private void iniciaOperacion() throws HibernateException
{
sesion =
HibernateUtil.getSessionFactory().openSession();
tx = sesion.beginTransaction();
}
Almacenando un Contacto
public long guardaContacto(Contacto contacto) {
long id = 0;
try {
iniciaOperacion();
id = (Long)sesion.save(contacto);
tx.commit();
} catch(HibernateException he) {
tx.rollback();
throw he;
} finally {
sesion.close();
}
return id;
}
Actualizando, Eliminando y
Recuperando un contacto
• sesion.update(contacto);
• sesion.delete(contacto);
• sesion.get(Contacto.class, idContacto);
Recuperando todos los contactos
sesion.createQuery("from Contacto").
list();
Entidades con Anotaciones
@Entity
public class Contacto implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String nombre;
private String email;
private String telefono;
//Demas elementos de la clase
}
¿Alguna Pregunta?
19

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Java con base de datos
Java con base  de datosJava con base  de datos
Java con base de datos
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
 
Sistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQLSistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQL
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 
Sql
SqlSql
Sql
 
Ddl
DdlDdl
Ddl
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Conectar java con una base de datos
Conectar java con una base de datosConectar java con una base de datos
Conectar java con una base de datos
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
Base de-datos-en-microsoft-sql-server
Base de-datos-en-microsoft-sql-serverBase de-datos-en-microsoft-sql-server
Base de-datos-en-microsoft-sql-server
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 

Similar a Hibernate ORM

Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con HibernateMauro Gomez Mejia
 
Manual hibernate v2
Manual hibernate v2Manual hibernate v2
Manual hibernate v2zaka3000
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetosJorge Ercoli
 
Curso de Desarrollo Web
Curso de Desarrollo WebCurso de Desarrollo Web
Curso de Desarrollo Webjuliocombativo
 
Hibernate 3.2 short manual
Hibernate 3.2 short manualHibernate 3.2 short manual
Hibernate 3.2 short manualEmmerson Miranda
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Persistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_softwarePersistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_softwareJose Luis Bugarin Peche
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireportJosé Pedro Avila
 
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...GEDEM CED
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateRubén Aguilera
 

Similar a Hibernate ORM (20)

Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Manual hibernate v2
Manual hibernate v2Manual hibernate v2
Manual hibernate v2
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Curso de Desarrollo Web
Curso de Desarrollo WebCurso de Desarrollo Web
Curso de Desarrollo Web
 
Hibernate 3.2 short manual
Hibernate 3.2 short manualHibernate 3.2 short manual
Hibernate 3.2 short manual
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Jdbc
JdbcJdbc
Jdbc
 
Persistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_softwarePersistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_software
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
Presentación4 Nivelación DIVA-GIS
Presentación4 Nivelación DIVA-GISPresentación4 Nivelación DIVA-GIS
Presentación4 Nivelación DIVA-GIS
 
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
 
#Cappacitate2015 Bogota
#Cappacitate2015 Bogota#Cappacitate2015 Bogota
#Cappacitate2015 Bogota
 
Cappacitate Pereira
Cappacitate PereiraCappacitate Pereira
Cappacitate Pereira
 
Tsql
TsqlTsql
Tsql
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a Hibernate
 
Catia 4 conceptos básicos
Catia 4   conceptos básicosCatia 4   conceptos básicos
Catia 4 conceptos básicos
 
Java
JavaJava
Java
 
Hibernate - Relaciones
Hibernate - RelacionesHibernate - Relaciones
Hibernate - Relaciones
 

Más de programadorjavablog

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)programadorjavablog
 
Conceptos avanzados oo (presentación 4)
Conceptos avanzados oo (presentación 4)Conceptos avanzados oo (presentación 4)
Conceptos avanzados oo (presentación 4)programadorjavablog
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Curso scjp 4 declaracion de clases
Curso scjp 4   declaracion de clasesCurso scjp 4   declaracion de clases
Curso scjp 4 declaracion de clasesprogramadorjavablog
 
Curso scjp 3 identificadores y control de acceso
Curso scjp 3   identificadores y control de accesoCurso scjp 3   identificadores y control de acceso
Curso scjp 3 identificadores y control de accesoprogramadorjavablog
 
Curso scjp 2 recordatorio de java
Curso scjp 2   recordatorio de javaCurso scjp 2   recordatorio de java
Curso scjp 2 recordatorio de javaprogramadorjavablog
 

Más de programadorjavablog (20)

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Uml (presentación 6)
Uml (presentación 6)Uml (presentación 6)
Uml (presentación 6)
 
Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)
 
Conceptos avanzados oo (presentación 4)
Conceptos avanzados oo (presentación 4)Conceptos avanzados oo (presentación 4)
Conceptos avanzados oo (presentación 4)
 
Java 5 se (presentación3)
Java 5 se (presentación3)Java 5 se (presentación3)
Java 5 se (presentación3)
 
Lenguaje java5 (presentación2)
Lenguaje java5 (presentación2)Lenguaje java5 (presentación2)
Lenguaje java5 (presentación2)
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
7iSF-3 scrum
7iSF-3   scrum7iSF-3   scrum
7iSF-3 scrum
 
7iSF-2 rup
7iSF-2   rup7iSF-2   rup
7iSF-2 rup
 
7iSF-1 ingeniería de software
7iSF-1   ingeniería de software7iSF-1   ingeniería de software
7iSF-1 ingeniería de software
 
7iSF-6 temas extra
7iSF-6   temas extra7iSF-6   temas extra
7iSF-6 temas extra
 
7iSF-5 cmm
7iSF-5   cmm7iSF-5   cmm
7iSF-5 cmm
 
Curso scjp 4 declaracion de clases
Curso scjp 4   declaracion de clasesCurso scjp 4   declaracion de clases
Curso scjp 4 declaracion de clases
 
Curso scjp 3 identificadores y control de acceso
Curso scjp 3   identificadores y control de accesoCurso scjp 3   identificadores y control de acceso
Curso scjp 3 identificadores y control de acceso
 
Curso scjp 2 recordatorio de java
Curso scjp 2   recordatorio de javaCurso scjp 2   recordatorio de java
Curso scjp 2 recordatorio de java
 
ICEFaces 2.0
ICEFaces 2.0ICEFaces 2.0
ICEFaces 2.0
 
Html5
Html5Html5
Html5
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Hibernate ORM

  • 2. Hibernate Hibernate es un framework de persistencia para mapeo objeto/relacional para ambientes Java. No solo se encarga del mapeo de clases Java a tablas de la base de datos (y de regreso), sino que también maneja los queries y recuperación de datos, lo que puede reducir de forma significativa el tiempo de desarrollo.
  • 3. Hibernate (2) Hibernate se encarga de alrededor del 80% de las tareas comunes relacionadas con la persistencia de datos, manejando todos los problemas relativos con la base de datos particular con la que estemos trabajando, de forma transparente para nosotros como desarrolladores.
  • 4. Hibernate (3) Si cambiamos el manejador de base de datos no será necesario que modifiquemos todo el SQL que ya teníamos para adaptarse al SQL que maneja la nueva base de datos. Solo será necesario modificar una línea en un archivo de configuración de Hibernate, y este se encargará del resto.
  • 5. Mapeos con Hibernate Existen dos formas en las que es posible realizar los mapeos: • Con archivos de mapeo en XML • Con Anotaciones
  • 6. Archivo de Configuración hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate- configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Aquí va nuestra configuración --> </session-factory> </hibernate-configuration>
  • 7. Configuración de la Conexión <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="connection.url"> jdbc:mysql://localhost/curso_hibernate </property> <property name="connection.username">usuario</property> <property name="connection.password">password</property> <property name="connection.pool_size">1</property>
  • 8. Propiedades Opcionales en el archivo de configuración <property name="dialect"> org.hibernate.dialect.MySQL5Dialect </property> <property name="show_sql">true</property> <property name="format_sql">true</property>
  • 9. ¿Crear o no crear? <property name="hbm2ddl.auto"></property> • validate: Valida el esquema, no modifica la base de datos. • update: Actualiza el esquema en caso de que haya cambios. • create: Crea nuevamente el esquema al inicio de la sesión, eliminando los datos que se encuentren en este. • create-drop: Crea el esquema al inicio de la sesión y lo elimina al final de este.
  • 10. Clase a almacenar public class Contacto implements Serializable { private long id; private String nombre; private String email; private String telefono; public Contacto() { } public Contacto(String nombre, String email, String telefono) { this.nombre = nombre; this.email = email; this.telefono = telefono; } //Getters y Setters }
  • 11. Mapeando la clase en XML <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate- mapping-3.0.dtd"> <hibernate-mapping> <class name="Contacto" table="CONTACTO"> <id name="id" column="ID"> <generator class="identity" /> </id> <property name="nombre" type="string" column="NOMBRE" /> <property name="email" /> <property name="telefono" /> </class> </hibernate-mapping>
  • 12. Session La manera en la que nuestra aplicación interactúa con Hibernate es a través de una instancia de org.hibernate.Session. El tiempo de vida de una sesión está atado a una transacción lógica en la base de datos (una transacción lógica puede abarcar varias transacciones físicas en la base de datos). Proporciona métodos para crear, leer, actualizar y eliminar entidades.
  • 13. Obteniendo una sesión public class HibernateUtil{ private static final SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (HibernateException he) { System.err.println("Ocurrió un error en la inicialización de la SessionFactory: " + he); throw new ExceptionInInitializerError(he); } } public static SessionFactory getSessionFactory() { return sessionFactory; } }
  • 14. Sesiones y Transacciones private Session sesion; private Transaction tx; private void iniciaOperacion() throws HibernateException { sesion = HibernateUtil.getSessionFactory().openSession(); tx = sesion.beginTransaction(); }
  • 15. Almacenando un Contacto public long guardaContacto(Contacto contacto) { long id = 0; try { iniciaOperacion(); id = (Long)sesion.save(contacto); tx.commit(); } catch(HibernateException he) { tx.rollback(); throw he; } finally { sesion.close(); } return id; }
  • 16. Actualizando, Eliminando y Recuperando un contacto • sesion.update(contacto); • sesion.delete(contacto); • sesion.get(Contacto.class, idContacto);
  • 17. Recuperando todos los contactos sesion.createQuery("from Contacto"). list();
  • 18. Entidades con Anotaciones @Entity public class Contacto implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String nombre; private String email; private String telefono; //Demas elementos de la clase }