Mapping And Configuration Files In Hibernate

Mapping and Configuration are very familiar keywords we used to here in the hibernate, every hibernate program must need these 2 XML files.

Mapping:

  • The mapping file is the heart of the hibernate application.
  • Every ORM tool needs this mapping, mapping is the mechanism of placing an object property into columns of a table.
  • Mapping can be given to an ORM tool either in the form of an XML or in the form of the annotations.
  • The mapping file contains the mapping from a POJO class name to a table name and POJO class variable names to table column names.
  • While writing a hibernate application, we can construct one or more mapping files, which means a hibernate application can contain any number of mapping files.

generally, an object contains 3 properties like

  • Identity (Object Name)
  • State (Object values)
  • Behavior (Object Methods)

But while storing an object into the database, we need to store only the values(State) right? but how to avoid identity, behavior.. it is not possible. To inform what value of an object has to be stored in what column of the table will be taking care by the mapping can be done using 2 ways,

  • XML
  • Annotations.

Annotations are introduced into java from JDK 1.5.

Syntax Of Mapping XML:

<hibernate-mapping>

<class name="POJO class name" table="table name in database">
<id name="variable name" column="column name in database" type="java/hibernate type" />
<property name="variable1 name" column="column name in database" type="java/hibernate type" />
<property name="variable2 name" column="column name in database" type="java/hibernate type" />
</class>

</hibernate-mapping>

Configuration:

The configuration is the file loaded into a hibernate application when working with hibernate, this configuration file contains 3 types of information.

  • Connection Properties
  • Hibernate Properties
  • Mapping file name(s)

We must create one configuration file for each database we are going to use, suppose if we want to connect with 2 databases, like Oracle, MySql, then we must create 2 configuration files.

No. of databases we are using  = That many number of configuration files

We can write this configuration in 2 ways…

  • XML
  • XML writing Properties file.  We don’t have annotations here, actually in hibernate 1, 2.x we defined this configuration file by writing .properties file, but from 3.x XML came into the picture.

so, finally

Mapping –> xml, annotations
Configuration –> xml, .properties (old style)

 

Syntax Of Configuration XML:

<hibernate-configuration>
<session-factory>

<!-- Related to the connection START -->
<property name="connection.driver_class">Driver Class Name </property>
<property name="connection.url">URL </property>
<property name="connection.user">user </property>
<property name="connection.password">password</property>
<!-- Related to the connection END -->

<!-- Related to hibernate properties START -->
<property name="show_sql">true/false</property>
<property name="dialet">Database dialet class</property>
<property name="hbm2ddl.auto">create/update or what ever</property>
<!-- Related to hibernate properties END-->

<!-- Related to mapping START-->
<mapping resource="hbm file 1 name .xml" / >
<mapping resource="hbm file 2 name .xml" / >
<!-- Related to the mapping END -->

</session-factory>
</hibernate-configuration>

But XML files are always recommended to work.

Related Articles

post a comment