Hibernate requires to know in advance where to find the mapping
information that defines how your Java classes relate to the database
tables. Hibernate also requires a set of configuration settings related
to database and other related parameters. All such information is
usually supplied as a standard Java properties file called
hibernate.properties, or as an XML file named
hibernate.cfg.xml.
I will consider XML formatted file
hibernate.cfg.xml to
specify required Hibernate properties in my examples. Most of the
properties take their default values and it is not required to specify
them in the property file unless it is really required. This file is
kept in the root directory of your application's classpath.
Hibernate Properties:
Following is the list of important properties you would require to configure for a databases in a standalone situation:
S.N. |
Properties and Description |
1 | hibernate.dialect This property makes Hibernate generate the appropriate SQL for the chosen database. |
2 |
hibernate.connection.driver_class
The JDBC driver class. |
3 |
hibernate.connection.url
The JDBC URL to the database instance. |
4 |
hibernate.connection.username
The database username. |
5 |
hibernate.connection.password
The database password. |
6 |
hibernate.connection.pool_size
Limits the number of connections waiting in the Hibernate database connection pool. |
7 |
hibernate.connection.autocommit
Allows autocommit mode to be used for the JDBC connection. |
If you are using a database along with an application server and JNDI then you would have to configure the following properties:
S.N. |
Properties and Description |
1 |
hibernate.connection.datasource
The JNDI name defined in the application server context you are using for the application. |
2 |
hibernate.jndi.class
The InitialContext class for JNDI. |
3 |
hibernate.jndi.<JNDIpropertyname>
Passes any JNDI property you like to the JNDI InitialContext. |
4 |
hibernate.jndi.url
Provides the URL for JNDI. |
5 |
hibernate.connection.username
The database username. |
6 |
hibernate.connection.password
The database password. |
Hibernate with MySQL Database:
MySQL is one of the most popular open-source database systems available today. Let us create
hibernate.cfg.xml configuration file and place it in the root of your application's classpath. You would have to make sure that you have
testdb database available in your MySQL database and you have a user
test available to access the database.
The XML configuration file must conform to the Hibernate 3
Configuration DTD, which is available from
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>
The above configuration file includes
<mapping> tags
which are related to hibernate-mapping file and we will see in next
chapter what exactly is a hibernate mapping file and how and why do we
use it. Following is the list of various important databases dialect
property type:
Database |
Dialect Property |
DB2 |
org.hibernate.dialect.DB2Dialect |
HSQLDB |
org.hibernate.dialect.HSQLDialect |
HypersonicSQL |
org.hibernate.dialect.HSQLDialect |
Informix |
org.hibernate.dialect.InformixDialect |
Ingres |
org.hibernate.dialect.IngresDialect |
Interbase |
org.hibernate.dialect.InterbaseDialect |
Microsoft SQL Server 2000 |
org.hibernate.dialect.SQLServerDialect |
Microsoft SQL Server 2005 |
org.hibernate.dialect.SQLServer2005Dialect |
Microsoft SQL Server 2008 |
org.hibernate.dialect.SQLServer2008Dialect |
MySQL |
org.hibernate.dialect.MySQLDialect |
Oracle (any version) |
org.hibernate.dialect.OracleDialect |
Oracle 11g |
org.hibernate.dialect.Oracle10gDialect |
Oracle 10g |
org.hibernate.dialect.Oracle10gDialect |
Oracle 9i |
org.hibernate.dialect.Oracle9iDialect |
PostgreSQL |
org.hibernate.dialect.PostgreSQLDialect |
Progress |
org.hibernate.dialect.ProgressDialect |
SAP DB |
org.hibernate.dialect.SAPDBDialect |
Sybase |
org.hibernate.dialect.SybaseDialect |
Sybase Anywhere |
org.hibernate.dialect.SybaseAnywhereDialect |