Hibernate with Annotation Example
Hibernate
with Annotation
The hibernate application can
be created with annotation. There are many annotations that can be used to
create hibernate application such as @Entity, @Id, @Table etc.
Hibernate Annotations are based
on the JPA 2 specification and supports all the features.
All the JPA annotations are
defined in the javax.persistence.* package. Hibernate EntityManager implements the interfaces and life
cycle defined by the JPA specification.
The core advantage of using
hibernate annotation is that you don't need to create mapping (hbm) file. Here,
hibernate annotations are used to provide the meta data.
Example to create the hibernate application with Annotation
There are 4 steps to create the
hibernate application with annotation.
- Add the jar file for oracle (if your database is oracle) and
annotation
- Create the Persistent class
- Add mapping of Persistent class in configuration file
- Create the class that retrieves or stores the persistent
object
1) Add the jar file for oracle and annotation
For oracle you need to add ojdbc14.jar file. For using annotation, you need
to add:
- hibernate-commons-annotations.jar
- ejb3-persistence.jar
- hibernate-annotations.jar
2) Create the Persistent class
Here, we are creating the same
persistent class which we have created in the previous topic. But here, we are
using annotation.
@Entity annotation marks this class as an entity.
@Table annotation specifies the table name where
data of this entity is to be persisted. If you don't use @Table annotation,
hibernate will use the class name as the table name bydefault.
@Id annotation marks the identifier for this
entity.
@Column annotation specifies the details of the
column for this property or field. If @Column annotation is not specified,
property name will be used as the column name bydefault.
Employee.java
package com.smgc;
import
javax.persistence.Entity;
import
javax.persistence.Id;
import
javax.persistence.Table;
@Entity
@Table(name = "emp1000")
public class Employee {
@Id
private int id;
private String firstName, lastName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = 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;
}
}
Test.java
package com.smgc;
import
org.hibernate.Session;
import
org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated
method stub
Session session = new AnnotationConfiguration().configure()
.buildSessionFactory().openSession();
Transaction t = session.beginTransaction();
Employee e1 = new Employee();
e1.setId(1001);
e1.setFirstName("Piyush");
e1.setLastName("Patel");
Employee e2 = new Employee();
e2.setId(1002);
e2.setFirstName("Tarika");
e2.setLastName("Patel");
session.persist(e1);
session.persist(e2);
t.commit();
session.close();
System.out.println("successfully
saved");
}
}
hibernate.cfg.xml
<?xml version="1.0"
encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration
SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!--
<session-factory>
<property
name="hbm2ddl.auto">create</property>
<property
name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property
name="connection.username">root</property>
<property
name="connection.password">""</property>
<property
name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping
class="com.smgc.Employee" />
</session-factory>
-->
<session-factory>
<property name="hbm2ddl.auto">create</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="connection.username">system</property>
<property name="connection.password">manager</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<mapping class="com.smgc.Employee"
/>
</session-factory>
</hibernate-configuration>
Comments
Post a Comment