CRUD Operations in Hibernate
So far we have seen Joined class, table per hierarchy and Mappings (OneToOne, OneToMany, ManyToMany)
Now let us see the CRUD Operations (Create, Read, Update and Delete)
We are going to add 2 employee’s, Retrieve one employee, Update and delete one employee record
hibernate.cfg.xml
<hibernate-configuration> <session-factory> <property name="hibernate.hbm2ddl.auto">update</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibercrud</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <mapping class="com.javainfinite.pojo.employee"/> </session-factory> </hibernate-configuration>
NewHibernateUtil.java
package com.javainfinite.pojo; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.SessionFactory; public class NewHibernateUtil { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from standard (hibernate.cfg.xml) // config file. sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } catch (Throwable ex) { // Log the exception. System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } }
employee.java
package com.javainfinite.pojo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="Emp_Crud") public class employee { @Id @GeneratedValue private int id; private String ename; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } }
execution.java
package com.javainfinite.execute; import com.javainfinite.pojo.NewHibernateUtil; import com.javainfinite.pojo.employee; import org.hibernate.Session; import org.hibernate.Transaction; public class execution { public static void main(String args[]) { Session session=NewHibernateUtil.getSessionFactory().openSession(); //Inserting Values try { Transaction trans=session.beginTransaction(); employee emp=new employee(); employee emp1=new employee(); emp.setEname("Alpha"); emp1.setEname("Beta"); session.save(emp); session.save(emp1); trans.commit(); session.close(); } catch(Exception e) { } //Reading Values try { Transaction trans=session.beginTransaction(); employee emp=(employee)session.get(employee.class, 2); System.out.println("Employee Name retrieved: "+emp.getEname()); System.out.println("----------------------------------"); trans.commit(); session.close(); } catch(Exception e) { } //Update employee records try { Transaction trans=session.beginTransaction(); employee emp=(employee)session.get(employee.class, 1); emp.setEname("Delta"); session.update(emp); trans.commit(); } catch(Exception e) { } // Delete Record try { Transaction trans=session.beginTransaction(); employee emp=(employee)session.get(employee.class, 1); session.delete(emp); trans.commit(); } catch(Exception e) { } } }
Output:
Inserting Values
Note:
Run each operations separately (comment other operations) – Don’t run all the operations simultaneously.
[…] Query Objects in Hibernate In our previous hibernate article, we have seen CRUD Operations. Similar to SQL Queries, Hibernate uses a Language called HQL – Hibernate Query Language. […]