Hibernar - Configuración
Hibernate requiere saber de antemano dónde encontrar la información de mapeo que define cómo se relacionan sus clases de Java con las tablas de la base de datos. Hibernate también requiere un conjunto de opciones de configuración relacionadas con la base de datos y otros parámetros relacionados. Toda esta información se proporciona normalmente como un archivo de propiedades estándar de Java llamadohibernate.properties, o como un archivo XML llamado hibernate.cfg.xml.
Consideraré un archivo con formato XML hibernate.cfg.xmlpara especificar las propiedades de Hibernate requeridas en mis ejemplos. La mayoría de las propiedades toman sus valores predeterminados y no es necesario especificarlos en el archivo de propiedades a menos que sea realmente necesario. Este archivo se guarda en el directorio raíz de la ruta de clases de su aplicación.
Propiedades de hibernación
A continuación se muestra la lista de propiedades importantes, se le pedirá que configure una base de datos en una situación independiente:
No Señor. | Propiedades y descripción |
---|---|
1 | hibernate.dialect Esta propiedad hace que Hibernate genere el SQL apropiado para la base de datos elegida. |
2 | hibernate.connection.driver_class La clase de controlador JDBC. |
3 | hibernate.connection.url La URL de JDBC a la instancia de la base de datos. |
4 | hibernate.connection.username El nombre de usuario de la base de datos. |
5 | hibernate.connection.password La contraseña de la base de datos. |
6 | hibernate.connection.pool_size Limita el número de conexiones en espera en el grupo de conexiones de la base de datos de Hibernate. |
7 | hibernate.connection.autocommit Permite utilizar el modo de confirmación automática para la conexión JDBC. |
Si está utilizando una base de datos junto con un servidor de aplicaciones y JNDI, deberá configurar las siguientes propiedades:
No Señor. | Propiedades y descripción |
---|---|
1 | hibernate.connection.datasource El nombre JNDI definido en el contexto del servidor de aplicaciones, que está utilizando para la aplicación. |
2 | hibernate.jndi.class La clase InitialContext para JNDI. |
3 | hibernate.jndi.<JNDIpropertyname> Pasa cualquier propiedad JNDI que desee al InitialContext de JNDI . |
4 | hibernate.jndi.url Proporciona la URL para JNDI. |
5 | hibernate.connection.username El nombre de usuario de la base de datos. |
6 | hibernate.connection.password La contraseña de la base de datos. |
Hibernar con la base de datos MySQL
MySQL es uno de los sistemas de bases de datos de código abierto más populares disponibles en la actualidad. Vamos a crearhibernate.cfg.xmlarchivo de configuración y colóquelo en la raíz de la ruta de clase de su aplicación. Tendrás que asegurarte de tenertestdb base de datos disponible en su base de datos MySQL y tiene un usuario test disponible para acceder a la base de datos.
El archivo de configuración XML debe ajustarse a la DTD de configuración de Hibernate 3, que está disponible en http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd.
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name = "hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name = "hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Assume test is the database name -->
<property name = "hibernate.connection.url">
jdbc:mysql://localhost/test
</property>
<property name = "hibernate.connection.username">
root
</property>
<property name = "hibernate.connection.password">
root123
</property>
<!-- List of XML mapping files -->
<mapping resource = "Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
El archivo de configuración anterior incluye <mapping> etiquetas, que están relacionadas con el archivo de mapeo de hibernación y veremos en el próximo capítulo qué es exactamente un archivo de mapeo de hibernación y cómo y por qué lo usamos.
A continuación se muestra la lista de varios tipos de propiedad de dialecto de bases de datos importantes:
No Señor. | Propiedad de base de datos y dialecto |
---|---|
1 | DB2 org.hibernate.dialect.DB2Dialect |
2 | HSQLDB org.hibernate.dialect.HSQLDialect |
3 | HypersonicSQL org.hibernate.dialect.HSQLDialect |
4 | Informix org.hibernate.dialect.InformixDialect |
5 | Ingres org.hibernate.dialect.IngresDialect |
6 | Interbase org.hibernate.dialect.InterbaseDialect |
7 | Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect |
8 | Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect |
9 | Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect |
10 | MySQL org.hibernate.dialect.MySQLDialect |
11 | Oracle (any version) org.hibernate.dialect.OracleDialect |
12 | Oracle 11g org.hibernate.dialect.Oracle10gDialect |
13 | Oracle 10g org.hibernate.dialect.Oracle10gDialect |
14 | Oracle 9i org.hibernate.dialect.Oracle9iDialect |
15 | PostgreSQL org.hibernate.dialect.PostgreSQLDialect |
dieciséis | Progress org.hibernate.dialect.ProgressDialect |
17 | SAP DB org.hibernate.dialect.SAPDBDialect |
18 | Sybase org.hibernate.dialect.SybaseDialect |
19 | Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect |