Tools and Technologies used in this article :

  1. Hibernate Core 4.1

  2. Maven

  3. SQLite 3 database

  4. SQLite Manager - Firefox addon

  5. JDK 1.6

  6. Eclipse 3.7

1. Create a Java Project using Maven Tool

In the command prompt execute the following command to generate Maven compatible Java project named as 'HibernateHelloWorld'.

	mvn archetype:generate -DgroupId=com.srccodes.example.hibernate -DartifactId=HibernateHelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Generated Maven Java Project structure
Maven Java Project structure

 

2. Update pom.xml

Add dependency of Hibernate core and SQLite jdbc library. Also update 'maven-compiler-plugin' so that it uses compilation level 1.5 onwards. Otherwise annotation (introduced in JDK 5) will not work.

File : pom.xml

 

3. Convert to Eclipse compatible Java project

Open the directory 'HibernateHelloWorld' in command prompt and run the following maven command.

	mvn eclipse:eclipse
Screenshot of command prompt
Maven Java Project

On completion of the above command, Maven Java project will be converted to a Eclipse compatible java project.

Eclipse compatible Java Project structure
Eclipse Java Project

 

4. Import project in Eclipse

Open Eclipse IDE and select from the menu File --> Import --> General --> Existing Projects into Workspace

Existing Projects into Workspace

Browse to the directory of the newly converted Eclipse compatible Java Project and click 'Finish' button.

Browse project
Screenshot of Eclipse project structure
Eclipse project structure

 

5. Add Hibernate Configuration file

Right click on 'main' and select from context menu 'New' --> 'Folder'.

new folder

Enter 'resources' in the 'Folder name' field and click the 'Finish' button.

resources folder

Copy the 'hibernate.cfg.xml' file in the 'resources' folder.

File: hibernate.cfg.xml
Note :
'mydb.db' is the SQLite database file included with the sourcecode attached in 'Download Source Code' section. You can create db file of your own using 'SQLite Manager - Firefox addon' UI. But copy that file inside 'HibernateHelloWorld' project directory directly.

I have set the property 'hibernate.hbm2ddl.auto' to 'update' so that when you will execute the code it will create the database tables of it's own based on the entity class 'com.srccodes.example.hibernate.Contact') we have written and referenced in this configuration file.

 

6. Configure Java Build Path

Right click on 'HibernateHelloWorld' project and select from context menu 'Properties' --> 'Java Build Path'.
Add 'resources' folder as shown in the screenshot below

Java Build Path

 

7. Add SQLiteDialect

Copy from attached source code or download SQLiteDialect and add under package 'org.hibernate.dialect' in your project.

Note :
dialect is used to help hibernate framework to create underlying database specific SQL query.

 

8. Write Entity class

Create a class 'Contact' under the package 'com.srccodes.example.hibernate' and copy the following content.

package com.srccodes.example.hibernate;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * The persistent class for the contact database table.
 * 
 */
@Entity
@Table(name = "contact")
public class Contact {
	private Integer id;
	private String name;
	private String email;

	public Contact() {

	}

	public Contact(Integer id, String name, String email) {
		this.id = id;
		this.name = name;
		this.email = email;
	}

	@Id
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
}

As we have set 'hibernate.hbm2ddl.auto' property in 'hibernate.cfg.xml' file, hibernate will generate the schema for the first time and for every change of the schema based on the annotation we write in the 'Contact' class.

Annotation '@Table(name = "contact")' will create a table named as'contact' in the SQLite database. As 'id' field of 'Contact' class is annotated as '@Id' so 'id' will be the primary key for the generated table 'contact'.

 

9. Interact with database using Hibernate API

Copy the following code to 'App' class of package 'com.srccodes.example.hibernate'.

 

10. Final project structure

After doing all the changes the overall project structure will look like this

overall project structure

 

11. Run Your Code

Right click on 'App.java' and select from context menu 'Run As' --> 'Java Application'.

 

12. Console Output

Now code will save two records in the database and fetch them to print in the console as well.

Console Output
Screenshot of the table using 'SQLite Manager - Firefox addon' UI
SQLite Manager

 

Download Source Code

 

References