package com.exam.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html }.
*/
public class HibernateSessionFactory {
/**
* Location of hibernate.cfg.xml file.
* Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file.
* The default classpath location of the hibernate config file is
* in the default package. Use #setConfigFile() to update
* the location of the configuration file for the current session.
*/
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;
static {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the <code>SessionFactory</code> if needed.
*
* @return Session
* @throws HibernateException
*/
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;
}
/**
* Rebuild hibernate session factory
*
*/
public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
/**
* return session factory
*
*/
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* return session factory
*
* session factory will be rebuilded in the next call
*/
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
/**
* return hibernate configuration
*
*/
public static Configuration getConfiguration() {
return configuration;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
该文件是一种基于JavaWeb的在线考试系统
共138个文件
jar:30个
gif:28个
java:25个
需积分: 5 0 下载量 115 浏览量
2022-09-10
23:48:51
上传
评论
收藏 11.94MB ZIP 举报
温馨提示
该文件是一种基于JavaWeb的在线考试系统
资源详情
资源评论
资源推荐
收起资源包目录
该文件是一种基于JavaWeb的在线考试系统 (138个子文件)
SoreDaoImp.class 3KB
HibernateSessionFactory.class 2KB
AddScoreAction.class 2KB
Questions.class 2KB
PaperDaoImp.class 2KB
Paper.class 2KB
User.class 2KB
UserBizImp.class 2KB
Score.class 1KB
UserDaoImp.class 1KB
LoginAction.class 1KB
RegistAction.class 1KB
QueryPaperAction.class 1KB
PaperBizImp.class 744B
SoreBizImp.class 663B
QuesetionDaoImp.class 302B
QuestionBizImp.class 299B
UserDao.class 227B
UserBiz.class 180B
SoreDao.class 175B
SoreBiz.class 175B
PaperDao.class 164B
PaperBiz.class 164B
QuesetionDao.class 162B
QuestionBiz.class 160B
.classpath 3KB
regist_02.gif 43KB
regist_01.gif 43KB
login_01.gif 42KB
login_02.gif 40KB
regist_04.gif 9KB
login_04.gif 8KB
regist_13.gif 5KB
regist_12.gif 4KB
login_14.gif 4KB
login_09.gif 4KB
login_13.gif 4KB
regist_11.gif 3KB
regist_10.gif 3KB
login_12.gif 3KB
login_10.gif 2KB
regist_08.gif 2KB
regist_03.gif 2KB
regist_06.gif 2KB
login_07.gif 2KB
regist_09.gif 2KB
login_03.gif 2KB
regist_07.gif 2KB
login_06.gif 2KB
login_11.gif 2KB
login_05.gif 2KB
regist_05.gif 2KB
login_08.gif 1KB
ͩ.gif 43B
hibernate3.jar 2.17MB
xwork-core-2.1.6.jar 1.49MB
ojdbc14.jar 1.29MB
freemarker-2.3.15.jar 859KB
mysql-connector-java-5.1.17-bin.jar 769KB
struts2-core-2.1.8.jar 738KB
mysql-connector-java-5.1.8-bin.jar 707KB
c3p0-0.9.1.jar 594KB
commons-collections-3.2.1.jar 562KB
antlr-2.7.6.jar 433KB
hibernate-tools.jar 356KB
log4j-1.2.11.jar 342KB
dom4j-1.6.1.jar 307KB
cglib-2.1.3.jar 276KB
ognl-2.7.3.jar 234KB
commons-beanutils-1.8.0.jar 226KB
commons-digester-1.8.1-sources.jar 203KB
commons-collections-2.1.1.jar 171KB
junit-4.4.jar 158KB
commons-dbcp-1.4.jar 157KB
commons-digester-1.8.jar 140KB
junit-3.8.1.jar 118KB
commons-pool-1.5.4.jar 94KB
commons-io-1.3.2.jar 86KB
commons-fileupload-1.2.1.jar 56KB
commons-logging.jar 52KB
commons-logging-1.0.4.jar 37KB
asm.jar 26KB
asm-attrs.jar 16KB
jta.jar 9KB
HibernateSessionFactory.java 3KB
Questions.java 2KB
Paper.java 1KB
User.java 1KB
UserBizImp.java 1KB
SoreDaoImp.java 1KB
Score.java 1KB
AddScoreAction.java 897B
UserDaoImp.java 861B
PaperDaoImp.java 842B
LoginAction.java 668B
RegistAction.java 614B
QueryPaperAction.java 608B
PaperBizImp.java 426B
SoreBizImp.java 353B
SoreDao.java 176B
共 138 条
- 1
- 2
Csdnable
- 粉丝: 3
- 资源: 39
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0