Hibernate example using xml mapping

As we discussed primary things like hibernate architecture, object states, configuration files, mapping files, transaction management to make a hibernate program. Let us start with a simple hibernate program to save a student class object into the database.

Example:

Student.java
/**
* This class represents a persistent class for Student.
* @author javawithease
*/

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
public int getStudentId() {
return studentId;
}
 
public void setStudentId(int studentId) {
this.studentId = studentId;
}
 
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 getClassName() {
return className;
}
 
public void setClassName(String className) {
this.className = className;
}
 
public String getRollNo() {
return rollNo;
}
 
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
 
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 resource="student.hbm.xml"/>
 
</session-factory>
 
</hibernate-configuration>
student.hbm.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping SYSTEM
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
 
<class name="com.javawithease.business.Student" table="Student">
<id name="studentId" type="int" column="Student_Id">
<generator class="native"></generator>
</id>
 
<property name="firstName" column="First_Name" type="string"/>
<property name="lastName" column="Last_Name" type="string"/>
<property name="className" column="Class" type="string"/>
<property name="rollNo" column="RollNo" type="string"/>
<property name="age" column="Age" type="int"/>
 
</class>
 
</hibernate-mapping>
HibernateUtil.java
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
/**
* This is a utility class for getting the hibernate session object.
* @author javawithease
*/

public class HibernateUtil {
private static final SessionFactory sessionFactory =
buildSessionFactory();
 
private static SessionFactory buildSessionFactory() {
SessionFactory sessionFactory = null;
try {
//Create the configuration object.
Configuration configuration = new Configuration();
//Initialize the configuration object
//with the configuration file data
configuration.configure("hibernate.cfg.xml");
// Get the SessionFactory object from configuration.
sessionFactory = configuration.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.javawithease.persistence.HibernateUtil;
 
/**
* This class is used for the hibernate operations.
* @author javawithease
*/

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();
}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.

No comments: