用myeclipse生成的一个产生数据库连接的模板类,很经典,值得学习:
package com.zhsh.hibernate.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;
}
}
分享到:
相关推荐
5. **配置文件**:可能有默认的配置模板,展示如何配置Hibernate以连接数据库。 6. **许可证文件**:关于软件的授权信息,通常遵循Apache License 2.0等开源协议。 总之,"hibernate-release-4.1.4"这个压缩包是...
在Java开发中,Hibernate通常会通过JDBC驱动来连接Oracle数据库,因此在Struts2和Hibernate的集成中,还需要正确配置数据库连接参数,如URL、用户名和密码,以及数据源等。 这个"struts2-hibernate3.3-Oracle-...
1. **配置Hibernate**:包括设置hibernate.cfg.xml文件,配置数据库连接信息,以及实体类的映射文件。 2. **创建SessionFactory**:基于配置文件创建SessionFactory实例,它是线程不安全的,一般在应用启动时创建。...
在Spring中,我们可以配置多个DataSource bean,每个bean对应一个数据库连接。Spring的AbstractRoutingDataSource类可以用来实现动态数据源切换,它可以根据一定的规则(如事务上下文、请求参数等)选择使用哪个数据...
**Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...
为了提高代码的可重用性和减少重复,我们可以创建一个数据库连接模板类,封装上述步骤。这个模板类可以包含静态方法,接收数据库配置参数,然后返回一个连接对象。这样,在需要使用数据库的地方,只需调用模板类的...
1. 配置文件:`hibernate.cfg.xml`,用于设置数据库连接信息、Hibernate配置参数等。 2. 实体类:每个实体类对应数据库中的一张表,使用注解进行字段映射。 3. DAO(Data Access Object)层:包含处理数据库操作的...
2. Hibernate配置:在项目中,首先需要配置Hibernate的`hibernate.cfg.xml`文件,包括数据库连接信息(如URL、用户名、密码)、JDBC驱动、方言等。 3. 实体类:实体类代表数据库中的表,每个属性对应表的一列。例如...
而`hibernate-tools`插件是Hibernate项目的一部分,它提供了一系列实用工具,帮助开发者更加便捷地进行数据库交互和对象模型的维护。本文将详细介绍`hibernate-tools`插件的功能、使用方法以及如何实现映射文件的...
然后,创建一个配置文件(如`hibernatetool.properties`),设置数据库连接信息、实体类输出目录、模板文件等。接着,通过命令行或者集成到构建工具(如Maven或Gradle)中运行`Hibernate-tools`,执行反编译数据库...
在Java开发领域,尤其是涉及到数据库操作时,JPA提供了一种标准的方式来映射数据库表到Java对象,而Hibernate作为JPA的实现之一,提供了丰富的功能和高性能的持久化服务。而Hibernate JPA Model Generator则是这个...
总结来说,"jsp连Sql_server数据库模板"是一个帮助开发者快速实现JSP与SQL Server数据库连接的工具,它可能包含了JDBC驱动、连接配置、数据库操作的模板代码,以及必要的异常处理机制。掌握这些知识点对于开发基于...
- 配置Hibernate以连接数据库,同时设置Spring中的事务管理策略,确保数据操作的原子性和一致性。 **3. 载入Spring的applicationContext.xml** - 配置Spring的依赖注入,通过XML文件定义bean及其依赖关系,便于...
创建Hibernate模板类,如`HibernateTemplate`,或者使用Spring Data JPA的Repository接口,实现数据访问逻辑。 5. 配置服务层: 将DAO注入到Service中,然后在Service方法上添加@Transactional注解,启用事务管理...
- `hibernate.cfg.xml`:这是Hibernate的配置文件,包含数据库连接信息、方言设置、缓存配置等。 - `实体类`:如`User.java`,代表数据库中的表,通常使用JavaBean模式,通过注解或XML映射到数据库表。 - `...
本文介绍了如何在MyEclipse环境中搭建Hibernate开发环境,包括创建工程项目、配置数据库连接、添加Hibernate支持以及自动生成实体类的过程。通过本文的学习,初学者可以快速掌握Hibernate的基本使用方法,为进一步...
1. **配置文件设置**:通过`hibernate.cfg.xml`文件配置数据库连接信息。 2. **实体类映射**:定义实体类,并使用注解或XML映射文件描述类与数据库表之间的映射关系。 3. **创建SessionFactory**:读取配置文件并...
Spring JDBC模块提供了一个JdbcTemplate和NamedParameterJdbcTemplate,这两个模板类简化了执行SQL语句的过程,自动处理了事务管理、异常翻译以及结果集的处理。此外,它还支持数据源配置和事务管理,可以无缝集成到...