testApp
|
----src // Java Source Code folder
|
-------------beans //Source Code folder
|
----------------Offer.java //Source Code
-------------servlet //Source Code folder
|
----------------DBStartUpServlet.java //Source Code
-------------dao //Source Code folder
|
----------------HibernateUtil.java //Source Code
----config // config folder where all the configuration files present
|
-------------hibernate.cfg.xml //Hibernate Config file
-------------Offer.hbm.xml// hibernate mapping with Offer TABLE
-------------log4j.properties// log4j setting
----WEB-INF //within folder
|
---------web.xml //file
---------classes //folder
---------lib //within folder
|
-------------hibernate3.jar //jar file
-------------antlr-2.7.6rc1.jar //jar file
-------------asm.jar //jar file
-------------asm-attrs.jar //jar file
-------------c3p0-0.9.0.jar //jar file for connection pool
-------------classes12.jar //if you use ORACLE DATABASE jar file
-------------mysql-connector-java-5.0.4-bin.jar //if you use MySQL DATABASE jar file
-------------commons-logging.jar //jar file
-------------commons-validator.jar //jar file
-------------dom4j-1.6.1.jar //jar file
-------------jta.jar //jar file
-------------log4j-1.2.11.jar //jar file
-------------nls_charset12.jar //jar file
Step 2. Add DBStartUpServlet Entry into the web.xml file
This servlet is only for load configuration files related to Hibernate and create Session Factory on start up . Create Session Factory is very Expensive
Create Session Factory is very Expensive so we added one servlet to create on server startup Initialize Connection pool on startup
Initialize Connection pool on startup using c3p0. Initialize log4j configuration
Initialize log4j configuration on startup.
private void initLogPro(String path){ try{ PropertyConfigurator.configure(path+File.separatorChar+"log4j.properties"); }catch(Exception ex){ System.out.println("Log4J can not be initialized"); logger.info("Log4J can not be initialized");
} }
}
Step 4. HibernateUtil.java code
package dao; public class HibernateUtil { public static String appHome = "No"; private static SessionFactory sessionFactory; private static final ThreadLocal threadSession = new ThreadLocal(); private static final ThreadLocal threadTransaction = new ThreadLocal();
// Create the initial SessionFactory from the default configuration files public static void configure(){ try { String path_properties = appHome+File.separatorChar+"hibernate.cfg.xml"; Configuration configuration = new Configuration(); configuration.addFile(path_properties); sessionFactory =configuration.configure().buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { if(sessionFactory==null) configure(); return sessionFactory; }
public static Session getSession(){ Session s = (Session) threadSession.get(); // logger.debug("session"+s); if (s == null) {