Hibernar - Configuração
O Hibernate requer saber com antecedência - onde encontrar as informações de mapeamento que definem como suas classes Java se relacionam com as tabelas do banco de dados. O Hibernate também requer um conjunto de definições de configuração relacionadas ao banco de dados e outros parâmetros relacionados. Todas essas informações são geralmente fornecidas como um arquivo de propriedades Java padrão chamadohibernate.properties, ou como um arquivo XML chamado hibernate.cfg.xml.
Vou considerar o arquivo formatado em XML hibernate.cfg.xmlpara especificar as propriedades necessárias do Hibernate em meus exemplos. A maioria das propriedades assume seus valores padrão e não é necessário especificá-los no arquivo de propriedades, a menos que seja realmente necessário. Este arquivo é mantido no diretório raiz do classpath do seu aplicativo.
Propriedades de hibernação
A seguir está a lista de propriedades importantes, você deverá configurar para bancos de dados em uma situação autônoma -
Sr. Não. | Propriedades e descrição |
---|---|
1 | hibernate.dialect Esta propriedade faz com que o Hibernate gere o SQL apropriado para o banco de dados escolhido. |
2 | hibernate.connection.driver_class A classe do driver JDBC. |
3 | hibernate.connection.url O URL JDBC para a instância do banco de dados. |
4 | hibernate.connection.username O nome de usuário do banco de dados. |
5 | hibernate.connection.password A senha do banco de dados. |
6 | hibernate.connection.pool_size Limita o número de conexões aguardando no pool de conexão do banco de dados Hibernate. |
7 | hibernate.connection.autocommit Permite que o modo autocommit seja usado para a conexão JDBC. |
Se você estiver usando um banco de dados junto com um servidor de aplicativos e JNDI, será necessário configurar as seguintes propriedades -
Sr. Não. | Propriedades e descrição |
---|---|
1 | hibernate.connection.datasource O nome JNDI definido no contexto do servidor de aplicativos, que você está usando para o aplicativo. |
2 | hibernate.jndi.class A classe InitialContext para JNDI. |
3 | hibernate.jndi.<JNDIpropertyname> Transmite qualquer propriedade JNDI de sua preferência para o JNDI InitialContext . |
4 | hibernate.jndi.url Fornece a URL para JNDI. |
5 | hibernate.connection.username O nome de usuário do banco de dados. |
6 | hibernate.connection.password A senha do banco de dados. |
Hibernar com banco de dados MySQL
O MySQL é um dos sistemas de banco de dados de código aberto mais populares disponíveis atualmente. Vamos criarhibernate.cfg.xmlarquivo de configuração e coloque-o na raiz do classpath de seu aplicativo. Você terá que se certificar de que temtestdb banco de dados disponível em seu banco de dados MySQL e você tem um usuário test disponível para acessar o banco de dados.
O arquivo de configuração XML deve estar de acordo com o Hibernate 3 Configuration DTD, que está disponível em 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>
O arquivo de configuração acima inclui <mapping> tags, que estão relacionadas ao arquivo de mapeamento de hibernação e veremos no próximo capítulo o que exatamente é um arquivo de mapeamento de hibernação e como e por que o usamos?
A seguir está a lista de vários tipos de propriedade de dialeto de bancos de dados importantes -
Sr. Não. | Propriedade de banco de dados e dialeto |
---|---|
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 |
16 | 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 |