Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Especialista en Aplicaciones y Servicios Web con Java Enterprise

Alternativas a EJB Sesin 3: Persistencia: introduccin a HIBERNATE

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 1

INDICE ! ! ! ! Por qu necesitamos Hibernate? Arquitectura Hibernate Configuracin de Hibernate Resumen de pasos de configuracin

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 2

Por qu necesitamos Hibernate?


! Programacin orientada a objetos
" Trata con objetos, atributos y relaciones

! Uso de bases de datos relacionales R


" Trata con relaciones, tuplas y conjuntos

ORM: Object-Relational Mapping ! Problema: un 35% del cdigo de una aplicacin para realizar la correspondencia O ! R ! Solucin: utilizar una ORM, por ejemplo Hibernate
ALTERNATIVAS A EJB 2005-2006 Depto. Ciencia Computacin e IA Introduccin a Hibernate 3

INDICE ! ! ! ! Por qu necesitamos Hibernate? Arquitectura Hibernate Configuracin de Hibernate Resumen de pasos de configuracin

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 4

Arquitectura Hibernate

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 5

INDICE ! ! ! ! Por qu necesitamos Hibernate? Arquitectura Hibernate Configuracin de Hibernate Resumen de pasos de configuracin

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 6

Configuracin de Hibernate ! Vamos a utilizar Hibernate en un entorno NO gestionado:


" La propia aplicacin gestiona las conexiones y transacciones

! Para utilizar hibernate necesitamos configurarlo


" org.hibernate.cfg.Configuration:
Correspondencias entre tipos Java y tipos de una BD SQL Propiedades de configuracin (Consultar manual de referencia de Hibernate)

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 7

Inicio de Hibernate
Configuration.setProperties() java -Dproperty=value hibernate.properties hibernate.cfg.xml BD

Configuration

SessionFactory

Session addClass

Session addClass

Session addClass clase (*.class) + fichero mapeado (*.hbm.xml)


Introduccin a Hibernate 8

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Ejemplos de creacin de una SessionFactory


Configuration cfg = new Configuration(); cfg.addResource("hello/Message.hbm.xml"); cfg.setProperties System.getProperties()); SesionFactory sessions = cfg.buildSessionFactory(); SessionFactory sessions = new Configuration(). addResource ("hello/Message.hbm.xml"). setProperties (System.getProperties()). buildSessionFactory(); SessionFactory sessions = new Configuration(). addClass(Message.class). setProperties(System.getProperties()). setProperty ("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect"). setProperty("hibernate.connection.datasource", "java:comp/env/jcbc/test").buildSesionFactory();
ALTERNATIVAS A EJB 2005-2006 Depto. Ciencia Computacin e IA Introduccin a Hibernate 9

Configuracin de la BD

! Es conveniente utilizar un pool de conexiones (C3P0)


" P.ej. libreria C3P0
hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.url = jdbc:postgresql://localhost/auctiondb hibernate.connection.username = auctionuser hibernate.conection.password = secret hibernate.dialect = net.sf.hibernate.dialect.PosgreSQLDialect hibernate.c3p0.min_size=5 hibernate.c3p0.max_size=20 hibernate.c3p0.timeout=300 hibernate.c3p0.max_elements=50 hibernate.c3p0.idle_test_period=3000
ALTERNATIVAS A EJB 2005-2006 Depto. Ciencia Computacin e IA Introduccin a Hibernate 10

Fichero hibernate.cfg.xml
CABECERA <hibernate-configuration> <session-factory name="java:/hibernate/HibernateFactory"> <property name="show_sql">true</property> <property name="connection.datasource"> java:/comp/env/jdbc/AuctionDB </property> <property name="dialect"> net.sf.hibernate.dialect.PostgreSQLDialect </property> <property name="transaction.manager_lookup_class"> net.sf.hibernate.transaction.JBossTransactionManagerLookup </property> <mapping resource="auction/Item.hbm.xml"/> <mapping resource="auction/Category.hbm.xml"/> <mapping resource="auction/Bid.hbm.xml"/> </session-factory> </hibernate-configuration>
ALTERNATIVAS A EJB 2005-2006 Depto. Ciencia Computacin e IA Introduccin a Hibernate 11

Ejemplos ! Uso de hibernate.hbm.xml


SessionFactory sessions = new Configuration().configure().buildSessionFactory();

! Configuracin de Loggin
" Ayuda a depurar los programas " Necesita el fichero log4j.properties en nuestro classpath

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 12

INDICE ! ! ! ! Por qu necesitamos Hibernate? Arquitectura Hibernate Configuracin de Hibernate Resumen de pasos de configuracin

ALTERNATIVAS A EJB

2005-2006 Depto. Ciencia Computacin e IA

Introduccin a Hibernate 13

Resumen de pasos de configuracin


! Situar el *.jar del driver JDBC elegido y el fichero hibernate2.jar en nuestro classpath ! Aadir las dependencias de Hibernate (directorio (lib) en el classpath. (lib/README.txt contiene una lista de libreras requeridas y opcionales). ! Elegir y configurar un pool de conexiones JDBC. ! Determinar las propiedades de Configuration en un fichero hibernate.properties en el classpath. ! Crear una instancia de Configuration en nuestra aplicacin y cargar los ficheros de mapeado XML utilizando addResource() o addClass(). ! Obtener una SessionFactory a partir de Configuration llamando a BuildSessionFactory().
ALTERNATIVAS A EJB 2005-2006 Depto. Ciencia Computacin e IA Introduccin a Hibernate 14

También podría gustarte