Configuring Hibernate

Using XML files for configuring hibernate application is the most widely used approach. This is simple one and less changes needed in the future. There is two types of configuration we can do using XML files. one is non-managed environment and another one is for managed environment. Here we will explain about the non-managed environment or standalone program. In the managed environment you can use datasource for establishing connection to the database instead directly specifying all the properties in the configuration file.

This sample program uses
configuration.configure().buildSessionFactory() to configure the hibernate application. It assumes that the hibernate.cfg.xml file is placed in the classpath of the project. if you want to change the configuration file name and path then pass as argument in the configuration.configure(“filename”) method.

J2eeBrainHibernateExample.java


package j2eebrain.com.hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* source : www.j2eebrain.com
*/
public class J2eeBrainHibernateExample {
public static void main(String args[]){
Configuration configuration = new Configuration();
// configuring hibernate
SessionFactory  sessionFactory = configuration.configure().buildSessionFactory();
}
}

hibernate.cfg.xml


<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:derby://localhost:1527/SampleDB</property>
<property name="connection.username">root</property>
<property name="connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="connection.password">root</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
</session-factory>
</hibernate-configuration>