Home Hibernate Hibernate : SessionFactory

 
 

Share on Google+Share on Google+

Hibernate : SessionFactory

Advertisement
In this section we will discuss concept of SessionFactory.

Hibernate : SessionFactory

In this section we will discuss concept of SessionFactory.

Hibernate SessionFactory :

For SessionFactory import org.hibernate.SessionFactory API.

SessionFactory is one of Hibernate concept. It creates session instances. In general an application has a single SessionFactory.
It is immutable and when it is created its internal state is set. This internal state contains metadata about O/R mapping.
The behavior of a sessionFactory is controlled by properties supplied at configuration time.

SessionFactory is thread safe so that many threads can access SessionFactory and request for sessions.

Example : Here we are going to give you example and describing how sessionFactory plays its role and how session is created.

Take a view on Hibernate.cfg.xml - Here we are configuring sessionFactory.

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_examples</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">none</property>
<mapping class="net.roseindia.table.Employee" />
</session-factory>

</hibernate-configuration>

Main Class HibernateSessionFactory.java -Here we show how sessionFactory creates Session.

package net.roseindia.main;

import java.util.*;
import net.roseindia.util.HibernateUtil;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class HibernateSessionFactory {
public static void main(String[] args) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); //Creating instance of SessionFactory
Session session = sessionFactory.openSession(); // session is opened

String hql = "SELECT emp.name, emp.salary, emp.dateOfJoin from Employee emp";
Query query = session.createQuery(hql);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);

List objectList = query.list();
Iterator iterator = objectList.iterator();
System.out.println("Employee Name \t Salary \t Date of Join");
while (iterator.hasNext()) {
Map map = (Map) iterator.next();
System.out.print(map.get("0"));
System.out.print("\t\t" + map.get("1"));
System.out.print("\t\t" + map.get("2"));
System.out.println();
}

session.close(); // session is closed
}
}

Output :

Hibernate: select employee0_.name as col_0_0_, employee0_.salary as col_1_0_, employee0_.date_of_join as col_2_0_ from employee employee0_
Employee Name     Salary       Date of Join
Mandy             20000        2010-03-12 00:00:00.0
Som               20000        1999-06-22 00:00:00.0
Mac               15000        2003-12-23 00:00:00.0
Roxi              22000        2001-02-03 00:00:00.0
Rowdy             20000        2012-06-27 00:00:00.0
Linda             20000        2010-06-12 00:00:00.0
Lizza             25000        2010-06-12 00:00:00.0

Click here to download complete source code

Advertisements

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: August 17, 2012

Related Tutorials

Discuss: Hibernate : SessionFactory  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:0
DMCA.com