Hibernate update Method
In this tutorial you will learn about the update method in Hibernate
Hibernate's update method saves the modified value into the table after the modification made. Using this method you can update the modified object with the help of an identifier. This method throws an exception if an identifier is not existed or missed.
Example :
Here I am giving a simple example which will demonstrate you how an update method is used in Hibernate. For this I am giving a complete source code which can be downloaded. To achieve the solution of our problem at first I have created a table named employee with the fields Id, and Name and then created a POJO / Persistent class named Employee.java to fetch the persistent object, a hibernate.cfg.xml file that the Hibernate can utilize it to create connection pool and the required environment setup, an employee.hbm.xml file to map an Employee object with table employee. And finally create a simple java file using which we will use an update method of Hibernate to update the record of table.
Complete Code :
Employee.java
package roseindia; public class Employee { private int id; private String name; public Employee() { } public Employee(String name) { this.name = name; } 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; } }
employee.hbm.xml
<?xml version='1.0'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="roseindia"> <class name="Employee" table="employee"> <id name="id" type="int" column="Id" > <generator class="assigned"/> </id> <property name="name"> <column name="Name" /> </property> </class> </hibernate-mapping>
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://192.168.10.13:3306/data </property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.pool_size">10</property> <property name="show_sql">true</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.current_session_context_class">thread</property> </session-factory> </hibernate-configuration>
EmpUpdate.java
package roseindia; import java.util.Scanner; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; public class EmpUpdate { private static SessionFactory sessionFactory; private static ServiceRegistry serviceRegistry; public static void main(String args[]) { Session session =null; try { try { Configuration cfg = new Configuration().addResource("roseindia/employee.hbm.xml").configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings( cfg.getProperties()).buildServiceRegistry(); sessionFactory = cfg.buildSessionFactory(serviceRegistry); } catch(Throwable th) { System.err.println("Failed to create sessionFactory object."+ th); throw new ExceptionInInitializerError(th); } session = sessionFactory.openSession(); Employee employee = new Employee(); Scanner scan = new Scanner(System.in); Transaction tr = session.beginTransaction(); System.out.println("Enter EmpId No. : "); int id = scan.nextInt(); System.out.println("Enter the EmpName to replace : "); String replace = scan.next(); employee.setId(id); employee.setName(replace); session.update(employee); System.out.println("Successfully updated"); tr.commit(); } catch(Exception e) { System.out.println(e.getMessage()); } finally { session.close(); } } }
Output :
1. Table before modification
2. When you will execute the java file EmpUpdate.java and provide the data as per instruction look at on console you will get the output as :
3. Table after modification : you will see the data of row 2 & column 2 is changed to vinay from india.