java examples
Home Java Examples Resources Java Interview Questions
Brainpower SEO

How to store object in Hibernate?

This example shows you how to store or save Hibernate object to database. The basic steps in creating application in Hibernate will be:

  • Creates the POJO
  • Create the Hibernate mapping file
  • Register the mapping file in the Hibernate configuration
  • Create a simple manager class to store the object


In this example we'll create a class called Label, this class is about a record label company. This class has the id, name, modifiedBy and modifiedData attributes. Their types in order are Long, String, String and Date.

Hibernate is an Object Relation Mapping technology which basically means how an object is mapped to a relational database model. Because of this it needs a mapping file to map the object properties to table columns. The mapping file usually named in the format of Label.hbm.xml, the class name with hbm.xml suffix. And for Hibernate application recognize the object, the mapping file should be registered in the Hibernate configuration hibernate.cfg.xml file.

We have a brief introduction about the Hibernate class and configuration structure. Let's jump the the working example. First we creates the mapping file and then we create the classes.

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.javacoderanch.example.hibernate.app.Label" table="LABELS">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name" not-null="true"/>
        <property name="modifiedBy" column="modified_by" length="50"/>
        <property name="modifiedDate" column="modified_date" type="timestamp"/>
    </class>
</hibernate-mapping>
package com.javacoderanch.example.hibernate.app;

import java.util.Date;

public class Label {
    private Long id;
    private String name;
    private String modifiedBy;
    private Date modifiedDate;
    
    public Label() {
    }

    private void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setModifiedBy(String modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public String getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedDate(Date modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

    public Date getModifiedDate() {
        return modifiedDate;
    }
    
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("[");        
        sb.append("id = " + id + "; ");
        sb.append("name = " + name + "]");
        return sb.toString();
    }
}

package com.javacoderanch.example.hibernate.app;

import java.util.Date;

import org.hibernate.Session;

public class LabelManager {
    private void saveLabel(Label label) {
        /*
         * To save an object we first get a session by calling getCurrentSession()
         * method from the SessionFactoryHelper class. Next we create a new
         * transcation, save the Label object and commit it to database,
         */
        Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession();
        
        session.beginTransaction();        
        session.save(label);        
        session.getTransaction().commit();
    }

    public static void main(String[] args) {        
        LabelManager manager = new LabelManager();

        /*
         * Creates a Label object we are going to stored in the database. We
         * set the name, modified by and modified date information.
         */
        Label label = new Label();
        label.setName("Sony Music");
        label.setModifiedBy("admin");
        label.setModifiedDate(new Date());
        
        /*
         * Call the LabelManager saveLabel method.
         */
        manager.saveLabel(label);
    }    
}

We have the code and the mapping file done. To register the mapping file in the Hibernate configuration file you can see the How to create Hibernate's SessionFactory? example. The example also tells you how to create the SessionFactoryHelper class to obtain the Hibernate's SessionFactory.