Hibernate annotation example

As we discussed a simple hibernate program to save a student class object into the database using annotations. Let us do the same exercise with the annotations.

Example:

Student.java

package com.w3schools.business
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
 
/**
 * This class represents a persistent class for Student.
 * @author w3schools
 */
@Entity  
@Table(name= "STUDENT")  
public class Student {
	//data members
	private int studentId;
	private String firstName;
	private String lastName;
	private String className;
	private String rollNo;
	private int age;
 
	//no-argument constructor
	public Student(){
 
	}
 
	//getter and setter methods
	@Id
	@GeneratedValue
	@Column(name = "Student_Id", unique = true, nullable = false)
	public int getStudentId() {
		return studentId;
	}
	public void setStudentId(int studentId) {
		this.studentId = studentId;
	}
 
	@Column(name = "First_Name")
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
 
	@Column(name = "Last_Name")
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
 
	@Column(name = "Class")
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
 
	@Column(name = "RollNo")
	public String getRollNo() {
		return rollNo;
	}
	public void setRollNo(String rollNo) {
		this.rollNo = rollNo;
	}
 
	@Column(name = "Age")
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
 
}

hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
 
    <session-factory>
        <property name="dialect">
           org.hibernate.dialect.OracleDialect
        </property>
        <property name="connection.url">
           jdbc:oracle:thin:@localhost:1521:XE
        </property>
        <property name="connection.username">
           system
        </property>
        <property name="connection.password">
           oracle
        </property>
        <property name="connection.driver_class">
           oracle.jdbc.driver.OracleDriver
        </property>
        <property name="hbm2ddl.auto">
           update
        </property>
        <property name="show_sql">
           true
        </property>
 
        <mapping class="com.w3schools.business.Student"/>
 
    </session-factory>
 
</hibernate-configuration>

HibernateUtil.java

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
/**
 * This is a utility class for getting the hibernate session object.
 * @author w3schools
 */
public class HibernateUtil {
    private static final SessionFactory sessionFactory = 
                                             buildSessionFactory();
 
    private static SessionFactory buildSessionFactory() {
    	SessionFactory sessionFactory = null;
        try {
        	//Create the session factory object.
        	return new AnnotationConfiguration().configure()
        	.buildSessionFactory(); 
        }
        catch (Exception e) {
           e.printStackTrace();
        }
        return sessionFactory;
    }
 
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
 
}

HibernateTest.java

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.w3schools.persistence.HibernateUtil;
 
/**
 * This class is used for the hibernate operations.
 * @author w3schools
 */
public class HibernateTest {
	public static void main(String args[]){
	//Create the student object.
	Student student = new Student();
 
	//Setting the object properties.
	student.setFirstName("Vivek");
	student.setLastName("Solenki");
	student.setClassName("MCA final");
	student.setRollNo("MCA/07/70");
	student.setAge(27);
 
	Transaction tx = null;
	//Get the session object.
	Session session = 
                      HibernateUtil.getSessionFactory().openSession();
	try{
              //Start hibernate session.
	      tx = session.beginTransaction();
 
              //Insert a new student record in the database.
	      session.save(student); 
 
              //Commit hibernate transaction if no exception occurs.
	      tx.commit();
              System.out.println("Saved Successfully.");
	  }catch (HibernateException e) {
	     if(tx!=null){
                 //Roll back if any exception occurs. 
	         tx.rollback();
	     }
	     e.printStackTrace(); 
	  }finally {
             //Close hibernate session.
	     session.close(); 
	  }
	}
}

Output:

Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into Student (First_Name, Last_Name, Class, 
RollNo, Age, Student_Id) values (?, ?, ?, ?, ?, ?)
Saved Successfully.

Download this example.
 
Next Topic: Hibernate collections mappings with example.
Previous Topic: Hibernate example using xml mapping.