Hibernate - Configurazione
Hibernate richiede di sapere in anticipo dove trovare le informazioni di mappatura che definiscono il modo in cui le classi Java si relazionano alle tabelle del database. Hibernate richiede anche una serie di impostazioni di configurazione relative al database e altri parametri correlati. Tutte queste informazioni vengono solitamente fornite come file delle proprietà Java standard chiamatohibernate.propertieso come file XML denominato hibernate.cfg.xml.
Prenderò in considerazione il file formattato XML hibernate.cfg.xmlper specificare le proprietà Hibernate richieste nei miei esempi. La maggior parte delle proprietà assume i propri valori predefiniti e non è necessario specificarli nel file delle proprietà a meno che non sia realmente richiesto. Questo file è conservato nella directory principale del classpath dell'applicazione.
Proprietà di ibernazione
Di seguito è riportato l'elenco delle proprietà importanti, ti verrà richiesto di configurare un database in una situazione autonoma -
Sr.No. | Proprietà e descrizione |
---|---|
1 |
hibernate.dialect Questa proprietà fa in modo che Hibernate generi l'SQL appropriato per il database scelto. |
2 | hibernate.connection.driver_class La classe del driver JDBC. |
3 | hibernate.connection.url L'URL JDBC all'istanza del database. |
4 | hibernate.connection.username Il nome utente del database. |
5 | hibernate.connection.password La password del database. |
6 | hibernate.connection.pool_size Limita il numero di connessioni in attesa nel pool di connessioni del database Hibernate. |
7 | hibernate.connection.autocommit Consente l'utilizzo della modalità autocommit per la connessione JDBC. |
Se si utilizza un database insieme a un server delle applicazioni e JNDI, è necessario configurare le seguenti proprietà:
Sr.No. | Proprietà e descrizione |
---|---|
1 | hibernate.connection.datasource Il nome JNDI definito nel contesto del server delle applicazioni, che si sta utilizzando per l'applicazione. |
2 | hibernate.jndi.class La classe InitialContext per JNDI. |
3 | hibernate.jndi.<JNDIpropertyname> Passa qualsiasi proprietà JNDI desiderata a JNDI InitialContext . |
4 | hibernate.jndi.url Fornisce l'URL per JNDI. |
5 | hibernate.connection.username Il nome utente del database. |
6 | hibernate.connection.password La password del database. |
Iberna con il database MySQL
MySQL è uno dei più popolari sistemi di database open source oggi disponibili. Cerchiamo di crearehibernate.cfg.xmlfile di configurazione e posizionarlo nella radice del classpath dell'applicazione. Dovrai assicurarti di averlo fattotestdb database disponibile nel tuo database MySQL e hai un utente test disponibile per accedere al database.
Il file di configurazione XML deve essere conforme alla DTD di configurazione di Hibernate 3, disponibile all'indirizzo 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>
Il file di configurazione sopra include <mapping> tag, che sono correlati al file di mappatura di ibernazione e vedremo nel prossimo capitolo cos'è esattamente un file di mappatura di ibernazione e come e perché lo usiamo?
Di seguito è riportato l'elenco di vari tipi di proprietà dialettali di database importanti:
Sr.No. | Proprietà database e dialetto |
---|---|
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 |