This section describe a simple program to insert record into database and fetch the records
Follow the setps
Step 1. create a table name EMPLOYEE in your database
// for MySQL
create table EMPLOYEE (
id bigint(20) ,
name varchar
);
// FOR ORACLE
create table EMPLOYEE (
id number;
name varchar
);
Step 2. Create Emp.java bean class.
Hibernate uses the Plain Old Java Objects (POJOs) classes to map to the database table (Emp.java to EMPLOYEE TABLE). We can configure the variables to map to the database column.
public class Emp {
private long id;
private String name;
public long getId() {
return id;
}
private void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Step 3. Emp.hbm.xml - This mapps EMPLOYEE TABLE and Emp.java
Hibernate provided connection pooling usning c3p0 and transaction management . Hibernate uses the hibernate.cfg.xml to create the connection pool and setup required environment
<?xml version='1.0' encoding='utf-8'?>
<lt;!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/techfaqdb</property>
<property name="connection.username">techfaq</property>
<property name="connection.password">techfaq</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">4</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!-- MySQL dialect//different for different Database -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="Emp.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Step 5. Here is the code for Save and Fetch data.
Hibernate Session is the main runtime interface for Hibernate which is used for DataBase operataion. Session has the method like save () , update () , creteQuery() for Data Base operation. You can get session using SessionFactory.openSession() method. SessionFactory allows application to create the Hibernate Sesssion by reading the configuration from hibernate.cfg.xml file. Then the save () method on session object is used to save the contact information to the database.
public class TestExample {
public static void main(String[] args) {
Session session = null;
try{
// This step will read hibernate.cfg.xml
SessionFactory sessionFactory = new
Configuration().configure().buildSessionFactory();
session =sessionFactory.openSession();
System.out.println("Inserting Records");
Emp emp1 = new Emp();
emp1.setName("Nick");
session.save(emp1);
Emp emp2 = new Emp();
emp2.setName("Das");
session.save(emp2);
session.flush(); // insert data into databse
System.out.println("Save Done- finish database insert");
// Now fetch the Employee data
List empList = session.createQuery("from Emp").list();
//empList contains the list of Employee
for(int i=0;i
Emp emp = (Emp)empList.get(i);
System.out.println(emp.getName());
}
// Out put is : Nick Das
}catch(Exception e){
}finally{
session.close();
}
}
}