In this article, we show you how to integrate Maven3, Hibernate3.6 and Oracle11g together. In the end of this article, you will create a Java project with Maven, and insert a record into Oracle database via Hibernate framework.
Tools & technologies used in this article :
- Maven 3.0.3
- JDK 1.6.0_13
- Hibernate 3.6.3.final
- Oracle 11g
1. Table Creation
Oracle SQL script to create a “DBUSER” table in database.
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
Use Maven to create a standard project structure.
mvn archetype:generate -DgroupId=com.debdesk -DartifactId=HibernateExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
More detail, please refer to this How to create a Java project with Maven.
3. Maven to Eclipse IDE
Convert the generated Maven based project to Eclipse project, and import it into your Eclipse IDE.
mvn eclipse:eclipse
4. Add Hibernate and Oracle Dependency
Update your pom.xml
file, and add all related dependencies.
- You need declared “JBoss repository” for the latest Hibernate jar and its dependency.
- For Oracle JDBC driver, you need to install it into your local maven repository manually.
Read this guide – How to add Oracle JDBC driver in your Maven local repository
File : pom.xml
4.0.0 com.debdesk.common HibernateExample jar 1.0 HibernateExample http://maven.apache.org JBoss repository http://repository.jboss.org/nexus/content/groups/public/ junit junit 4.8.2 test com.oracle ojdbc6 11.2.0 org.hibernate hibernate-core 3.6.3.Final javassist javassist 3.12.1.GA
5. Hibernate Mapping file (hbm) + Model
Create a Hibernate XML mapping file and Model class for table “DBUSER“.
– Create following “DBUser.hbm.xml
” file and put it under “src/main/resources/com/debdesk/user“.
Create the folder if it does not exists.
File : DBUser.hbm.xml
– Create a “DBUser.java
” file and put it under “src/main/java/com/debdesk/user/”
File : DBUser.java
package com.debdesk.user; import java.util.Date; /** * Dbuser generated by hbm2java */ public class DBUser implements java.io.Serializable { private int userId; private String username; private String createdBy; private Date createdDate; public DBUser() { } public DBUser(int userId, String username, String createdBy, Date createdDate) { this.userId = userId; this.username = username; this.createdBy = createdBy; this.createdDate = createdDate; } public int getUserId() { return this.userId; } public void setUserId(int userId) { this.userId = userId; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getCreatedBy() { return this.createdBy; } public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } public Date getCreatedDate() { return this.createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } }
You may interest read this article – Eclipse + Hibernate tools to generate Hibernate mapping files automatically.
6. Hibernate Configuration File
Create a Hibernate configuration file “hibernate.cfg.xml” and put it under the root of resources folder, “src/main/resources/hibernate.cfg.xml“, and fill in your Oracle database details. And map to above Hibernate mapping file – “DBUser.hbm.xml“.
File : hibernate.cfg.xml
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:DEBDESK debdesk password org.hibernate.dialect.Oracle10gDialect DEBDESK true
7. Hibernate Utility
Create a classic “HibernateUtil.java
” class to take care of Hibernate session management. And put under “src/main/java/com/debdesk/util/HibernateUtil.java”
File : HibernateUtil.java
package com.debdesk.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } }
8. Review Final Project Structure
Review it, and your project structure should look like following :
9. Hibernate Coding
Update “App.java
“, to code Hibernate to save a dummy user record into a table “DBUSER“.
File : App.java
package com.debdesk; import java.util.Date; import org.hibernate.Session; import com.debdesk.util.HibernateUtil; import com.debdesk.user.DBUser; public class App { public static void main(String[] args) { System.out.println("Maven + Hibernate + Oracle"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); DBUser user = new DBUser(); user.setUserId(100); user.setUsername("superman"); user.setCreatedBy("system"); user.setCreatedDate(new Date()); session.save(user); session.getTransaction().commit(); } }
10. Run It
Run your “App.java
“, and see the output in Eclipse console view :
Done.