Hibernate demo

hibernate

hibernate

This post will help you to setup the environment to write your first hello world program with Hibernate!

  1. Get the hibernate distribution from their website. (as of now, I have hibernate-distribution-3.3.2.GA-dist.zip with me)
  2. Download the jars for commons-logging, asm and JDBC driver for your database.
  3. Start a java project in eclipse.
  4. Add all jars in hibernate distribution and other libraries mentioned in step 2.
  5. Prepare your hibernate configuration file
  6. Prepare your Data Transfer Object (DTO) and SQL table
  7. Prepare your hibernate mapping file for your DTO
  8. Start JDBC calls.

Library files needed

Almost all jars are being distributed. I have downloaded commons-logging and asm extra. Then I added the JDBC driver for mysql later. Nothing more (you want more????)

hibernate-jars

hibernate-jars

Preparation of Hibernate Configuration File

This file contains the DB configuration detail for Hibernate. Generally it follows the structure like this.

<?xml version=’1.0′ encoding=’utf-8′?>
<!DOCTYPE hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD//EN”
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”&gt;

<hibernate-configuration>
<session-factory>
<property name=”hibernate.connection.driver_class”>com.mysql.jdbc.Driver</property>
<property name=”hibernate.connection.url”>jdbc:mysql://localhost/test</property>
<property name=”hibernate.connection.username”>root</property>
<property name=”hibernate.connection.password”></property>
<property name=”hibernate.connection.pool_size”>1</property>
<property name=”show_sql”>true</property>
<property name=”dialect”>org.hibernate.dialect.MySQLDialect</property>
<property name=”hibernate.hbm2ddl.auto”>update</property>
<!– Mapping files –>
<mapping resource=”contact.hbm.xml”/>
</session-factory>
</hibernate-configuration>

name this as hibernate.cfg.xml and save it to your ‘src’ or source folder. On compilation it should go to your bin or classes or any other target folder.

Preparation of DTO and SQL table

Create  a table in your DBMS using the following structure

table structure

table structure

Write a java class that serves as the DTO for this table.

package hib;

public class Contact {
private String firstName;
private String lastName;
private String email;
private long id;

public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}

Preparation of hibernate mapping file for SQL table

We mentioned about mapping resource file. we need to create that file now. This is to tell the hibernate about the mapping between java and SQL table.

<mapping resource=”contact.hbm.xml”/>

Another XML is created as follows and named it as contact.hbm.xml

<?xml version=”1.0″?>
<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”&gt;

<hibernate-mapping>
<class name=”hib.Contact” table=”CONTACT”>
<id name=”id” type=”long” column=”ID” >
<generator/>
</id>

<property name=”firstName”>
<column name=”FIRSTNAME” />
</property>
<property name=”lastName”>
<column name=”LASTNAME”/>
</property>
<property name=”email”>
<column name=”EMAIL”/>
</property>
</class>
</hibernate-mapping>

Start Quering with Hibernate

This is the final step. Write a java program that invokes Hibernate and insert data into contact table.

package hib;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class FirstExample {

/**
* @param args
*/
public static void main(String[] args) {
//Hibernate Session is the main runtime interface between a Java application and Hibernate
Session session=null;
try {
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
session = sessionFactory.openSession();
System.out.println(“Inserting record”);
Contact contact = new Contact();
contact.setId(1);
contact.setFirstName(“Pandian”);
contact.setLastName(“R”);
contact.setEmail(“abc@def.com”);

//save the contact information to the database
session.save(contact);
System.out.println(“End”);
} catch (HibernateException e) {
e.printStackTrace();
}finally
{
if (session!=null)
{
session.flush();
session.close();
}
}
}
}

Yes, Now we can start our program and see how the data is getting inserted.

console printing

console printing

Nice na.

Keep querying!

Ref: http://www.roseindia.net/hibernate/runninge-xample.shtml
Advertisements

One thought on “Hibernate demo

  1. Pingback: GrassField» Blog Archive » Show light on Hibernate mapping file

Comments are closed.