Automatic Table Creation Using Hibernate (original) (raw)
Last Updated : 19 Jun, 2022
Hibernate is a Java framework that implements ORM(Object Relational Mapping) design pattern. It is used to map java objects into a relational database. It internally uses JDBC(Java Database Connectivity), JTA(Java Transaction API), and JNDI(Java Naming and Directory Interface). It helps to make java objects persist in the database without losing their state, thus, named Hibernate. It can be used to perform all the CRUD operations without having to write SQL queries. Hibernate framework can be used to create tables in the database automatically. Below property is added in the configuration file to create tables automatically.
create
"hibernate.hbm2ddl.auto" property accepts the following values:
- create: If the value is created, Hibernate creates a new table in the database when the SessionFactory object is created. In case, a table exists in the database with the same name, it deletes the table along with data and creates a new table.
- update: If the value is updated then hibernate first validates whether the table is present in the database or not , if present alters that table as per the changes, if not creates a new one.
- validate: If the value is validated then hibernate only verifies whether the table is present or not if the table does not exist then throws an exception.
- create-drop: If the value is create-drop then hibernate creates a new table when SessionFactory is created, performs the operation, and deletes the table when SessionFactory is destroyed. This value is used for testing the hibernate code.
- none: It does not make any changes to the schema.
Below is an example demonstrating the automatic table creation in hibernate using the MySQL database.
Example Project
hibernate.cfg.xml file:
XML `
create org.hibernate.dialect.MySQL5Dialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/demo root root`
Student.hbm.xml file:
XML `
`
Student.java file:
Java `
package p1;
public class Student {
private int id;
private String 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;
}
}
`
Test.java file:
Java `
package p1;
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration;
import beans.Student;
public class Test { public static void main(String... args) { try { Configuration config=new Configuration(); config.configure(); System.out.println(config); SessionFactory sessionFactory=config.buildSessionFactory(); Session session=sessionFactory.openSession(); System.out.println(session); Student s=new Student(); s.setId(101); s.setName("Raghav"); session.save(s); Transaction t=session.beginTransaction(); t.commit(); } catch(Exception e) { System.out.println(e); } } }
`
Output:
A new table 'student' is created and data from the Student class object is mapped into the table.
Similar Reads
Basics of Spring Framework
Software Setup and Configuration
Core Spring
- Spring Boot Tutorial Spring Boot is a Java framework that makes it easier to create and run Java applications. It simplifies the configuration and setup process, allowing developers to focus more on writing code for their applications. This Spring Boot Tutorial is a comprehensive guide that covers both basic and advance 10 min read
- Spring MVC Tutorial In this tutorial, we'll cover the fundamentals of Spring MVC, including setting up your development environment, understanding the MVC architecture, handling requests and responses, managing forms, and integrating with databases. You'll learn how to create dynamic web pages, handle user input, and i 7 min read