Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain modelto a traditional relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.
Hibernate is free software that is distributed under the GNU Lesser General Public License.
Hibernate's primary feature is mapping from Java classes to database tables (and from Java data types to SQL data types). Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves the developer from manual result set handling and object conversion. Applications using Hibernate are portable to supported SQL databases with little performance overhead
Relational Persistence for Java and .NET
Historically, Hibernate facilitated the storage and retrieval of Java domain objects via Object/Relational Mapping. Today, Hibernate is a collection of related projects enabling developers to utilize POJO-style domain models in their applications in ways extending well beyond Object/Relational Mapping
Example of sample Mapping XML file
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Aug 9, 2013 9:25:17 AM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="core.classes.lab.TestDescription" table="lab_test_description">
<id name="testID" type="int" column="labTestDescription_TestID">
<generator class="increment" />
</id>
<property name="testName" column="labTestDescription_TestName"
type="string" />
<property name="testDescription" column="labTestDescription_TestDescription"
type="string" />
<property name="category" column="labTestDescription_Category"
type="string" />
<property name="testProcedure" column="labTestDescription_TestProcedure"
type="string" />
<property name="isSpecimenAvailable" column="labTestDescription_IsSpecimenAvailable"
type="boolean" />
<property name="specimenType" column="labTestDescription_SpecimenType"
type="string" />
<property name="testResultTableName" column="labTestDescription_TestResultTableName"
type="string" />
<property name="loincCode" column="labTestdescription_LoincCode"
type="string" />
<property name="createUser" column="labTestDescription_CreateUser"
type="int" />
<property name="lastUpdateUser" column="labTestDescription_LastUpdateUser"
type="int" />
<property name="createDate" column="labTestDescription_CreateDate"
type="java.util.Date" />
<property name="lastUpdate" column="labTestDescription_LastUpdate"
type="java.util.Date" />
</class>
</hibernate-mapping>