Automatic Table Creation Using Hibernate
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.
“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.
A new table ‘student’ is created and data from the Student class object is mapped into the table.