Hibernate is Object Relational mapping (ORM) tool which is open source and distributed under the GNU Lesser General Public License.
It is mainly used to map the class object with the relational database.It also Provides data query and data retrieval functionality.
In hibernate ,database schema is maintained by either xml file or using Annotations.
Project View After Completion
Hibernate Environment Setting
Right click over project on Project Explorer and goto properties->Java Build Path->Libraries
Add Required Hibernate jars, JRE system Library, Apache Tomcat server by click on Add Library and Add External Jar ojdbc14.jar by click on Add External Jars.
For Details Read How to set Hibernate Environment
hibernate.cfg.xml
This is a file that contains information about Oracle database(or any other database you want to use) Driver and connection information and mapping class information.
We can also use create property in place of update.
create is a property which drops the table if it already in database and creates new one but update makes the changes in the table if its already there and if table is not there then creates a new one.
<?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>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="hibernate.connection.username">hr</property>
<property name="hibernate.connection.password">hr</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- <mapping class="blog.webideaworld.in.Student"/> -->
<mapping resource="Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Student.java
This is a POJO class and it is working as Persistent class for Hibernate and the same java class we are using to store object of Student class using Hibernate Framework.
package blog.webideaworld.in;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Student {
private int id;
private String name;
private int rollno;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRollno() {
return rollno;
}
public void setRollno(int rollno) {
this.rollno = rollno;
}
public static void main(String args[]){
Student st =new Student();
st.setId(1);
st.setName("jack");
st.setRollno(44);
SessionFactory sessionFactory =new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session session=sessionFactory.openSession();
session.beginTransaction();
session.save(st);
session.getTransaction().commit();
}
}
Student.hbm.xml
In Place of Annotations we are using this hbm.xml file here which is called hibernate mapping file.
<?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>
<class name="blog.webideaworld.in.Student" table="Student">
<id name="id">
<generator class="assigned"/>
</id>
<property name="name" column="Name"/>
<property name="rollno" column="Rollno"/>
</class>
</hibernate-mapping>
To Generate Getters and Setters Right Click inside Student.java then select Source -> Generate Getters and SettersTo Run this Project Right Click inside Student.java, select Run As -> Java Application
other Generator classes:
increment class automatically sets value for id column.
<id name="id">
<generator class="increment"/>
</id>
sequence class using a sequence for id column.
<id name="id" column="Id">
<generator class="sequence">
<param name="sequence">sequence_name</param>
</generator>
</id>
Create a Sequence Example:
CREATE SEQUENCE SEQUENCE_NAME
START WITH 101
INCREMENT BY 1
MAXVALUE 999
NOCYCLE
NOCACHE
Download Code Link 1
Download Code Link 2
Output:
No comments:
Post a Comment