Diferencia entre revisiones de «Hibernate»
(Página nueva: Hibernate es un framework de persistencia de objetos para Java. Su función principal es mapear objetos a tablas relacionales de una base de datos. Actualmente Hibernate cuanta con v...) |
(→Ver también) |
||
(No se muestran 17 ediciones intermedias de 8 usuarios) | |||
Línea 1: | Línea 1: | ||
− | Hibernate es un framework de persistencia de objetos para Java. Su función principal es mapear objetos a tablas | + | [[Category:Hibernate]] |
+ | Hibernate es un framework de persistencia de objetos para Java. Su función principal es la de [[Mapeo Objeto-Relacional]], es decir, mapear objetos a tablas de una base de datos relacional. | ||
Actualmente Hibernate cuanta con varios subproyectos que resuelven distintos aspectos del acceso y manipulación de datos. | Actualmente Hibernate cuanta con varios subproyectos que resuelven distintos aspectos del acceso y manipulación de datos. | ||
+ | |||
+ | == Log de querys == | ||
+ | Es posible decirle a Hibernate que realice un log de los comandos SQL que ejecuta. Esto resulta muy útil en tiempo de desarrollo. | ||
+ | |||
+ | Para esto es necesario definir la propiedad ''show_sql'' en la configuración de Hibernate (generalmente, el archivo ''hibernate.cfg.xml''): | ||
+ | |||
+ | <code xml> | ||
+ | <property name="show_sql">true</property> | ||
+ | </code> | ||
+ | |||
+ | Al ejecutar veremos algo como lo siguiente: | ||
+ | |||
+ | <code sql> | ||
+ | select emails0_.PERSON_ID as PERSON1_0_, emails0_.EMAIL_ADDR as EMAIL2_0_ | ||
+ | from PERSONA emails0_ | ||
+ | where emails0_.PERSON_ID=? | ||
+ | </code> | ||
+ | |||
+ | Si además queremos que el log aparezca mejor formateado, agregamos la variable ''format_sql'': | ||
+ | |||
+ | <code xml> | ||
+ | <property name="format_sql">true</property> | ||
+ | </code> | ||
+ | |||
+ | Y veremos: | ||
+ | <code sql> | ||
+ | select | ||
+ | emails0_.PERSON_ID as PERSON1_0_, | ||
+ | emails0_.EMAIL_ADDR as EMAIL2_0_ | ||
+ | from | ||
+ | PERSONA emails0_ | ||
+ | where | ||
+ | emails0_.PERSON_ID=? | ||
+ | </code> | ||
+ | |||
+ | Si ademas desean saber los valores de las bind variables, y variables de resultado que se utilizan en el query, deben configurar lo siguiente en el archivo ''log4j.properties'': | ||
+ | |||
+ | <code> | ||
+ | log4j.logger.org.hibernate.type=debug | ||
+ | </code> | ||
+ | |||
+ | Y veremos: | ||
+ | <code> | ||
+ | 12:30:56,551 DEBUG LongType:133 - binding '1' to parameter: 1 | ||
+ | 12:30:56,551 DEBUG LongType:172 - returning '1' as column: PERSON1_0_ | ||
+ | 12:30:56,567 DEBUG StringType:172 - returning 'demo@dosideas.com' as column: EMAIL2_0_ | ||
+ | </code> | ||
+ | |||
+ | Otra opción bastante interesante es ver el manejo de recursos por parte de Jdbc. Se debe agregar la propiedad: | ||
+ | |||
+ | <code> | ||
+ | log4j.logger.org.hibernate.jdbc=debug | ||
+ | </code> | ||
+ | |||
+ | Y veremos: | ||
+ | |||
+ | <code> | ||
+ | 12:30:56,551 - opening JDBC connection | ||
+ | 12:30:56,553 - preparing statement | ||
+ | 12:30:56,554 - about to open ResultSet (open ResultSets: 0, globally: 0) | ||
+ | 12:30:57,551 - about to close ResultSet (open ResultSets: 1, globally: 1) | ||
+ | 12:30:58,551 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) | ||
+ | 12:30:58,552 - closing statement | ||
+ | 12:30:56,553 - aggressively releasing JDBC connection | ||
+ | 12:30:56,554 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) | ||
+ | (open ResultSets: 0, globally: 0)] | ||
+ | </code> | ||
== Ver también == | == Ver también == | ||
+ | * [[Cache De Hibernate]] | ||
* [[Hibernate Con Spring]] | * [[Hibernate Con Spring]] | ||
+ | * [[Hibernate Annotations con Spring]] | ||
+ | * [[Actualizacion Dinamica Con Hibernate]] | ||
+ | * [[Eficiencia Ejecutando Querys Con Hibernate]] | ||
+ | * [[Stored Procedures con Hibernate]] | ||
+ | * [[Practicas con Hibernate]] | ||
* [http://www.hibernate.org/ Web oficial de Hibernate] | * [http://www.hibernate.org/ Web oficial de Hibernate] | ||
+ | * [http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/html/files/hibernate-tutorials.zip Hibernate 4 Tutorials (proyectos con código de ejemplo)] | ||
* [http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html#tutorial-firstapp Tutorial de Hibernate] | * [http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html#tutorial-firstapp Tutorial de Hibernate] | ||
+ | * [http://www.javaworld.com/javaworld/jw-07-2008/jw-07-orm-comparison.html Comparación entre Hibernate, iBatis y JPA] | ||
+ | * [http://www.dosideas.com/java/180-testeando-rapido-todos-los-mapeos-de-hibernate.html Testear todos los mapeos de Hibernate] |
Revisión actual del 17:22 7 ago 2012
Hibernate es un framework de persistencia de objetos para Java. Su función principal es la de Mapeo Objeto-Relacional, es decir, mapear objetos a tablas de una base de datos relacional.
Actualmente Hibernate cuanta con varios subproyectos que resuelven distintos aspectos del acceso y manipulación de datos.
Log de querys
Es posible decirle a Hibernate que realice un log de los comandos SQL que ejecuta. Esto resulta muy útil en tiempo de desarrollo.
Para esto es necesario definir la propiedad show_sql en la configuración de Hibernate (generalmente, el archivo hibernate.cfg.xml):
<property name="show_sql">true</property>
Al ejecutar veremos algo como lo siguiente:
select emails0_.PERSON_ID as PERSON1_0_, emails0_.EMAIL_ADDR as EMAIL2_0_
from PERSONA emails0_
where emails0_.PERSON_ID=?
Si además queremos que el log aparezca mejor formateado, agregamos la variable format_sql:
<property name="format_sql">true</property>
Y veremos:
select
emails0_.PERSON_ID as PERSON1_0_, emails0_.EMAIL_ADDR as EMAIL2_0_
from
PERSONA emails0_
where
emails0_.PERSON_ID=?
Si ademas desean saber los valores de las bind variables, y variables de resultado que se utilizan en el query, deben configurar lo siguiente en el archivo log4j.properties:
log4j.logger.org.hibernate.type=debug
Y veremos:
12:30:56,551 DEBUG LongType:133 - binding '1' to parameter: 1
12:30:56,551 DEBUG LongType:172 - returning '1' as column: PERSON1_0_
12:30:56,567 DEBUG StringType:172 - returning 'demo@dosideas.com' as column: EMAIL2_0_
Otra opción bastante interesante es ver el manejo de recursos por parte de Jdbc. Se debe agregar la propiedad:
log4j.logger.org.hibernate.jdbc=debug
Y veremos:
12:30:56,551 - opening JDBC connection
12:30:56,553 - preparing statement 12:30:56,554 - about to open ResultSet (open ResultSets: 0, globally: 0) 12:30:57,551 - about to close ResultSet (open ResultSets: 1, globally: 1) 12:30:58,551 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 12:30:58,552 - closing statement 12:30:56,553 - aggressively releasing JDBC connection 12:30:56,554 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
Ver también
- Cache De Hibernate
- Hibernate Con Spring
- Hibernate Annotations con Spring
- Actualizacion Dinamica Con Hibernate
- Eficiencia Ejecutando Querys Con Hibernate
- Stored Procedures con Hibernate
- Practicas con Hibernate
- Web oficial de Hibernate
- Hibernate 4 Tutorials (proyectos con código de ejemplo)
- Tutorial de Hibernate
- Comparación entre Hibernate, iBatis y JPA
- Testear todos los mapeos de Hibernate