Hibernate Example – Step by Step
We need
Table: student
Id |name |address |
1 |satya |HYD |
2 |Jon |VZG |
1. Simple POJO class (StudentBo)
2. Main Class (StudentDAo)
3. Mapping file (student.hbm.xml)
4. Configuration file (hibernate.cfg.xml)
1. Simple POJO class (StudentBo)
· It contains contains table column names as data members
· In above table id,name,addrees are columns
· It contains column names with setters and getters
package bo;
public class StudentBo {
private int id;
private String name, address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. Main Class (StudentDAo)
· Configuration à it will loads the all the configurations from config file and save in config object
· Session Factory à It will connect to the database
· Session à it opens the session for DB operations
· Transaction à to save the Changes in DB
package dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import bo.StudentBo;
public class StudentDao {
public static void main(String[] args) {
System.out.println("**************** HIBERNATE ****************************");
Configuration cfg = new Configuration();
cfg.configure("res/hibernate.cfg.xml");
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction transaction = session.beginTransaction();
StudentBo bo = new StudentBo();
bo.setId(12);
bo.setName("JANA");
bo.setAddress("VZG");
session.save(bo);
transaction.commit();
session.close();
factory.close();
}
}
3. Mapping file (student.hbm.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="bo">
<class name="StudentBo" table="student">
<id name="id" column="id">
<generator class="assigned" />
</id>
<property name="name" column="name" index="1" type="java.lang.String" />
<property name="address" column="address" index="2" type="java.lang.String" />
</class>
</hibernate-mapping>
4. Configuration file (hibernate.cfg.xml)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">1</property>
<!-- Hibernate Properteies -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">validate</property>
<mapping resource="res/student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Here
hbm2ddl.auto
· Create - drop+create
· Update - alter+create
· Validate - check schema
· create-drop - drop+create+drop
hbm.cfg.xml
· dialect
· mapping
· show_sql
· format_sql