Hibernate中配置集合映射(3)
来源:互联网 发布:tensorflow介绍 编辑:程序博客网 时间:2024/06/06 08:36
package cn.edu.ahau.mgc.hibernate.many2one.factory;
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;
}
}
ExportToDBCreate.java:
view plaincopy to clipboardprint?
package cn.edu.ahau.mgc.hibernate.export;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportToDBCreate {
public static void main(String[] args) {
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}
O(∩_∩)O哈哈~
是偶转载的,注明下哈
O(∩_∩)O哈哈~
- Hibernate中配置集合映射(3)
- Hibernate中配置集合映射(1)
- Hibernate中配置集合映射(2)
- Hibernate中映射集合属性
- Hibernate的映射(集合)
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate集合映射、关联映射
- hibernate中一对一映射配置详细解析(一)
- hibernate中一对一映射配置详细解析(二)
- hibernate中继承映射配置详细解析(一)
- hibernate中继承映射配置详细解析(二)
- hibernate中继承映射配置详细解析(三)
- hibernate中继承映射配置详细解析(四)
- first step
- 解决 PHP 加载 dll 模块出错的问题
- 09即将流行的经典语录!
- Hibernate中配置集合映射(1)
- Hibernate中配置集合映射(2)
- Hibernate中配置集合映射(3)
- 老师,Windows Vista下怎么配置JDK的环境变量?
- 关于母版页面
- 寻求帮助
- 困惑
- 原来还不是太坏
- 记录下每天进步的短文
- 09年 五月卷 笑对顺逆
- CSDN删除都删除不了文章,坑爹啊,蒋涛真是坑爹啊