Thursday, June 4, 2009

Hibernate 3 with Annotation Hands on with Example

I have worked with Hibernate2 where we had to define all configuration as well as Class to Table mapping though XML files. Hibernate 3 goes one step ahead and provides new ways to work
Where we can use annotation to define Class-Table mapping.

Hibernate3 supports annotation and requires Java 5 or above to function properly. While trying to work with Hibernate you will notice it has several dependencies to other third party jars, like
apache commons collections , apache commons logging.

I have tried to put all the required file in a zip file  and named it   "hibernate3AllJars" .

Since while playing around with codes which require some data base I prefer MySQL  since it is very easy to use and it is free. I have also putted the  MySQL JDBC Driver  mysql-connector-java-5.0.5-bin in the zip file.

If needed you can email me regarding the zip file.

For the Hands on I have created a Table in MySQL Database "sidd"  by executing the following command,

CREATE TABLE `honey` (
    ->   `id` int(11) NOT NULL auto_increment,
    ->   `name` varchar(100) default NULL,
    ->   `taste` varchar(100) default NULL,
    ->   PRIMARY KEY  (`id`)
    -> ) ENGINE=MyISAM ;

The table contains three column,  id, name and taste.

Now created the Honey POJO class , which is as follows,


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

public class Honey {

    @Column(name = "id")
    private int id;
    @Column(name = "name")
    private String name;

    @Column(name = "taste")
    private String taste;
    public int getId() {
        return id;
    public void setId(int id) { = id;
    public String getName() {
        return name;
    public void setName(String name) { = name;
    public String getTaste() {
        return taste;
    public void setTaste(String taste) {
        this.taste = taste;

With the help of annotations I have declared that this class is a persistent class and it is mapped with the table honey [@Table(name="honey")].

Now, mapped three members id, name and taste to corresponding columns of the honey table.

Without using annotation we would require to declare this  table-class relationship in a xml file as Follows,

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

  <class name="" table="Honey">
   <id name="id" type="long" column="id" >
   <generator class="assigned"/>

  <property name="name">
     <column name="name" />
  <property name="taste">
    <column name="taste"/>

1 comment :

  1. This is a nice tutorial, but can you make the look a bit more clear.

    Also can you guide with some sort of download link, from where I can download the source code or zip file?