Thursday, June 7, 2018

Hibernate Tutorial


Hibernate Tutorial


Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database.

Maven commands:
mvn archetype:generate -DgroupId=com.devyan.hibernate -DartifactId=HibernateFirstAPP -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Switch to your workspace and execute below maven command to make project eclipse compatible.
mvn eclipse:eclipse -Dwtpversion=2.0

 


pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.devyan.hibernate</groupId>
  <artifactId>HibernateFirstAPP</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>HibernateFirstAPP Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>4.3.10.Final</version>
</dependency>
<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.187</version>
</dependency>
</dependencies>
  <build>
    <finalName>HibernateFirstAPP</finalName>
  </build>
</project>


Employee.java
package com.devyan.hibernate;

public class Employee {
       int empno;
       String ename;
       String job;
       public int getEmpno() {
             return empno;
       }
       public void setEmpno(int empno) {
             this.empno = empno;
       }
       public String getEname() {
             return ename;
       }
       public void setEname(String ename) {
             this.ename = ename;
       }
       public String getJob() {
             return job;
       }
       public void setJob(String job) {
             this.job = job;
       }     

}


EMP.hbm.xml

<!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
   <class name="com.devyan.hibernate.Employee" table="HIBERNATE.Employee">
       <id name="empno" type="int"/>
       <property name="ename"/>
       <property name="job"/>
   </class>
</hibernate-mapping>


NOTE: HIBERNATE.Employee where HIBERNATE is my schema name and Empoyee is table name

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> 
        <property name="hbm2ddl.auto">update</property> 
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</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> 
    <mapping resource="EMP.hbm.xml"/> 
    </session-factory> 
 
</hibernate-configuration> 

NOTE:
i.)         ADD ojdbc5.jar in your project

Database Setup

Create a table Employee in your Oracle database
CREATE TABLE employee
( empno number(10) NOT NULL,
  ename varchar2(50) NOT NULL,
  job varchar2(50)
);

StoreEmployeeData.java

package com.devyan.hibernate;

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.Configuration; 
 
public class StoreEmployeeData { 
public static void main(String[] args) { 
     
    //creating configuration object 
    Configuration cfg=new Configuration(); 
    cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file 
     
    //creating seession factory object 
    SessionFactory factory=cfg.buildSessionFactory(); 
     
    //creating session object 
    Session session=factory.openSession(); 
     
    //creating transaction object 
    Transaction t=session.beginTransaction(); 
         
    Employee e1=new Employee(); 
    e1.setEmpno(1323415); 
    e1.setEname("NEwton"); 
    e1.setJob("Analyst"); 
     
    session.persist(e1);//persisting the object 
     
    t.commit();//transaction is commited 
    session.close(); 
     
    System.out.println("successfully saved"); 
     
} 
} 


Run your java application:
Console message:
INFO: HHH000232: Schema update complete
successfully saved

0 comments:

Post a Comment