📄 initsessionfactory.java
字号:
package com.crystal.hibernate;
import javax.naming.InitialContext;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
public class InitSessionFactory
{
private InitSessionFactory()
{
}
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final Configuration cfg = new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
public static SessionFactory getInstance()
{
if (sessionFactory == null) {
initSessionFactory();
}
return sessionFactory;
}
public Session openSession()
{
return sessionFactory.getCurrentSession();
}
public Session getCurrentSession()
{
return sessionFactory.getCurrentSession();
}
private static synchronized void initSessionFactory()
{
Logger log = Logger.getLogger(InitSessionFactory.class);
if (sessionFactory == null) {
try {
cfg.configure(CONFIG_FILE_LOCATION);
String sessionFactoryJndiName = cfg
.getProperty(Environment.SESSION_FACTORY_NAME);
if (sessionFactoryJndiName != null) {
cfg.buildSessionFactory();
log.debug("get a jndi session factory");
sessionFactory = (SessionFactory) (new InitialContext())
.lookup(sessionFactoryJndiName);
}
else {
log.debug("classic factory");
sessionFactory = cfg.buildSessionFactory();
}
}
catch (Exception e) {
System.err
.println("%%%% Error Creating HibernateSessionFactory %%%%");
e.printStackTrace();
throw new HibernateException(
"Could not initialize the Hibernate configuration");
}
}
}
public static void close()
{
if (sessionFactory != null) {
sessionFactory.close();
}
sessionFactory = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -