This a my first hibernate Program.After going through the hibernate documentation from http://www.hibernate.org/docs.html i have started trying this program and faced a couple of issues before make it to run successfully. Hope this will help you.
SoftWare Used
1. Eclipse 3.2
2. Razorsql (http://www.razorsql.com/)
3 HsqlDB (http://hsqldb.org/)
4 JDK 1.6
5 ant
The following jar are requied to run the appication
1.hibernate3.jar
2.antlr-2.7.6.jar
3.javassist-3.9.0.GA.jar
4.jta-1.1.jar
5.dom4j-1.6.1.jar
6.commons-collections-3.1.jar
7.slf4j-api-1.5.8.jar
8.slf4j-simple-1.5.2.jar
9.hsqldb.jar
Most of the jars will be available in hibernate binary distribution, remaining can be downloaded from findjar.com
Below are the steps to develop and run the hibernate hsql Application
Create the directory structure and source files as shown below
JAVA SOURCE FILES
User.java
package com.upog.demo;
import java.util.Date;
public class User {
private int id;
private String name;
private Date date;
public User() {}
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
HibernateUtil.java
package com.upog.demo;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory()
{
try
{
return new Configuration().configure().buildSessionFactory();
}
catch (Exception e)
{
System.out.println(” SessionFactory creation failed” + e);
throw new ExceptionInInitializerError(e);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
}
HibernateTest.java
package com.upog.demo;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class HibernateTest {
public static void RetrieveUser()
{
System.out.println(“Retrieving User list from USER_INFO ….”);
Session session = HibernateUtil.getSessionFactory().openSession();
List UserList = session.createQuery(“from User”).list();
for (Iterator iterator = UserList.iterator(); iterator.hasNext();)
{
User user = (User) iterator.next();
System.out.println(user.getName() + “\t ” + user.getId() + “\t ” + user.getDate());
}
session.close();
}
public static void saveUser( String title)
{
Session session = HibernateUtil.getSessionFactory().openSession();
User user = new User();
user.setName(title);
user.setDate(new Date());
System.out.println(“\n Saving user ” + user.getName());
session.save(user);
session.flush();
session.close();
}
public static void main (String args[])
{
saveUser(“abc”);
saveUser(“def”);
saveUser(“Hi”);
saveUser(“hello”);
RetrieveUser();
}
}
Hibernate Configuration Files
Hibernate.cfg.xml - Contains the information about the database like URL,diver,ID,Password etc
Note: Change the value of connection.url as per you project home (I have given absolute path)
<!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>org.hsqldb.jdbcDriver</property>
<property>jdbc:hsqldb:file:D:\data\workspace\Hibernate\database\mydb;shutdown=true</property>
<property>sa</property>
<property> </property>
<property>2</property>
<property>org.hibernate.dialect.HSQLDialect</property>
<property>true</property>
<property>update</property>
<property>thread</property>
<mapping resource=”hibernate.hbm.xml”/>
</session-factory>
</hibernate-configuration>
Hibernate.hbm.xml – Defines the mapping between the Java Object and database table
<?xml version=”1.0″?>
<!DOCTYPE hibernate-mapping PUBLIC
”-//Hibernate/Hibernate Mapping DTD 3.0//EN”
”http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd“>
<hibernate-mapping package=”com.upog.demo”>
<class table=”USER_INFO”>
<id column=”USER_ID”>
<generator/>
</id>
<property column=”NAME”/>
<property column=”CREATED_DATE”/>
</class>
</hibernate-mapping>
Create USER_INFO table in hsqldb
1. Connect hsqldb using razor sql with the properties as given below.
Login : sa
Password :
Driver class : org.hsqldb.jdbcDriver
Driver location :${PROJECT_HOME}\lib\hsqldb.jar
JDBC URL :jdbc:hsqldb:file:${PROJECT_HOME}\database\mydb;shutdown=true
2. Execute the following command
CREATE MEMORY TABLE PUBLIC.USER_INFO(ID INTEGER DEFAULT 0 NOT NULL PRIMARY KEY,NAME VARCHAR(25),CREATED_DATE DATE)
3. close the connection
Build.xml
<?xml version = “1.0″ encoding = “UTF-8″?>
<project name = “Hibernate” default = “run” basedir = “.”>
<property file=”${basedir}/project.properties”/>
<property file=”${basedir}/log4j.properties”/>
<property value=”hibernate” />
<property value=”${basedir}/src”/>
<property value=”${basedir}/lib” />
<property value=”${basedir}/build”/>
<property value=”hibernate” />
<path>
<pathelement path=”${lib}/hibernate3.jar”/>
<pathelement path=”${lib}/antlr-2.7.6.jar”/>
<pathelement path=”${lib}/javassist-3.9.0.GA.jar”/>
<pathelement path=”${lib}/jta-1.1.jar”/>
<pathelement path=”${lib}/dom4j-1.6.1.jar”/>
<pathelement path=”${lib}/commons-collections-3.1.jar”/>
<pathelement path=”${lib}/slf4j-api-1.5.8.jar” />
<pathelement path=”${lib}/slf4j-simple-1.5.2.jar” />
<pathelement path=”${lib}/hsqldb.jar” />
</path>
<target>
<delete dir=”${build}”/>
</target>
<target depends=”clean”>
<mkdir dir=”${build}”/>
</target>
<target depends=”mkdir” >
<javac srcdir=”${source}” destdir=”${build}” includes=”com/**/*.java”>
<classpath refid=”dependencies”/>
</javac>
</target>
<target name = “buildJar” depends=”compile”>
<copy todir=”${build}”>
<fileset dir=”${source}” includes = “*.xml, *.properties”/>
</copy>
<jar jarfile = “${build}/${jarname}.jar” basedir = “${build}” />
</target>
<target depends=”buildJar”>
<java classname=”com.upog.demo.HibernateTest” >
<classpath >
<pathelement location=”${build}/${jarname}.jar”/>
</classpath >
<classpath refid=”dependencies”/>
</java>
</target>
</project>
Right click on the build.xml file in eclipse Then Click on Run As – > Ant Buid.
Let me know your comments






