Hibernate 4 Annotation Example with Gradle
July 28, 2014
In this page we will learn Hibernate 4 example using annotation. In hibernate creating SessionFactory is changed. StandardServiceRegistryBuilder is used to create SessionFactory. To resolve the JAR dependency , gardle has been used. I am providing complete example to run the demo. You can also find the download link at the bottom.
Software Used
In our Hibernate 4 Example, we are using below software.1. JDK 7
2. Eclipse
3. Gradle 2.0
4. MySQL 5.5
Project Structure in Eclipse
Before start, check the class and cfg file location in eclipse.
Create Database Table in MySQL
For the demo, I am using MySQL 5.5. I have created a database schema with the name "concretepage" and inside that schema I have created a table named as person.person
CREATE TABLE `person` ( `id` INT(10) NULL DEFAULT NULL, `name` VARCHAR(50) NULL DEFAULT NULL )
Hibernate 4 JAR Dependency Using Gradle
To resolve JAR dependency of Hibernate 4, find the below Gradle script.build.gradle
apply plugin: 'java' apply plugin: 'eclipse' archivesBaseName = 'Concretepage' version = '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { compile 'org.hibernate:hibernate-core:4.3.6.Final' compile 'javax.servlet:javax.servlet-api:3.1.0' compile 'org.slf4j:slf4j-simple:1.7.7' compile 'org.javassist:javassist:3.15.0-GA' compile 'mysql:mysql-connector-java:5.1.31' }
Create Annotation based Entity for the Demo
In our example we are using a Person table and so find the person entity with annotation.Person.java
package com.concretepage; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="person") public class Person { @Id @Column(name="id") private int id; @Column(name="name") 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; } }
Create hibernate.cfg.xml
Now find the hibernate configuration file that will have database connection setting and entity registration.hibernate.cfg.xml
<!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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/concretepage</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></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.hbm2ddl.auto">update</property> <mapping class="com.concretepage.Person"/> </session-factory> </hibernate-configuration>
Create SessionFactory using StandardServiceRegistryBuilder in Hibernate 4
This part is important regarding hibernate 4 feature. Now create SessionFactory using StandardServiceRegistryBuilder.HibernateUtil.java
package com.concretepage; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory ; static { Configuration configuration = new Configuration().configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); sessionFactory = configuration.buildSessionFactory(builder.build()); } public static SessionFactory getSessionFactory() { return sessionFactory; } }
Create Main Class to Test
Finally we are in the position to test our hibernate 4 example. In main method we are just saving a person entity in database.TestMain.java
package com.concretepage; import org.hibernate.Session; public class TestMain { public static void main(String[] args) { Person person = new Person(); person.setId(1); person.setName("Concretepage"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.save(person); session.getTransaction().commit(); session.close(); System.out.println("Done"); } }
Hibernate: insert into person (name, id) values (?, ?) Done