Appendix D: Hibernate Test Application Source Code

This appendix provides the contents of the following two Hibernate Test Application source code files:

HibernateSessionFactory.javahibernate.jspThe following are the contents of the HibernateSessionFactory.java file:

package com.hp.osms.hibernate.utility; import org.hibernate.HibernateException; import org.hibernate.Session;

import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {

private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration();

private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION;

private HibernateSessionFactory() {

}

public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get();

if (session == null !session.isOpen()) { if (sessionFactory == null) {

rebuildSessionFactory();

}

session = (sessionFactory != null) ? sessionFactory.openSession():null; threadLocal.set(session);

}

return session;

}

public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) {

System.err.println("Can not create SessionFactory!!"); e.printStackTrace();

}

}

public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null);

if (session != null) session.close();

}

public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory;

}

public static void setConfigFile(String configFile) { HibernateSessionFactory.configFile = configFile; sessionFactory = null;

}

}

The following are the contents of the hibernate.jsp file:

<%@ page language="java" import="java.util.*,

org.hibernate.HibernateException, org.hibernate.Query,org.hibernate.Transaction, com.hp.osms.hibernate.utility.HibernateSessionFactory, com.hp.osms.hibernate.Users" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>

<head><title>Simple Hibernate test Page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">

</head>

<%!

Appendix D: Hibernate Test Application Source Code 55