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,
package com.nefunda.java.hibernate.pojo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="honey")
public class Honey {
@Id
@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) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.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"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.nefunda.java.hibernate.pojo.Honey" table="Honey">
<id name="id" type="long" column="id" >
<generator class="assigned"/>
</id>
<property name="name">
<column name="name" />
</property>
<property name="taste">
<column name="taste"/>
</property>
</class>
</hibernate-mapping>
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,
package com.nefunda.java.hibernate.pojo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="honey")
public class Honey {
@Id
@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) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.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"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.nefunda.java.hibernate.pojo.Honey" table="Honey">
<id name="id" type="long" column="id" >
<generator class="assigned"/>
</id>
<property name="name">
<column name="name" />
</property>
<property name="taste">
<column name="taste"/>
</property>
</class>
</hibernate-mapping>
This is a nice tutorial, but can you make the look a bit more clear.
ReplyDeleteAlso can you guide with some sort of download link, from where I can download the source code or zip file?
~Somali