Hibernate数据库连接的设置及其配置文件的书写
首先Hibernate的配置有两种情况1.管理环境中的配置。2.非管理环境中的配置。我们可以理解管理环境为它提供了自动的事务,资源管理和底层的安全结构。比如JBoss,BEA WebLogin或IBM Websphere都实现了标准的管理环境。而非管理环境与之相反没有提供自动的事务,资源管理和底层的安全结构。比如Jetty或Tomcat这样的servlet容器。
其次我们来看具体的数据库连接
在非管理环境中,我们的hibernate要去获得JDBC连接,如果我们为每个数据库的交互都去创建一个连接就比较浪费资源了,所以我们应该使用数据库连接池。而非管理环境又没有实现连接池,我们必须实现自己的池化算法或者依赖于第三方类库例如C3P0,因为Hibernate内置了对C3P0的支持,所以我们使用该连接池。不使用Hibernate时,应用代码通常直接调用连接池来获得JDBC连接并执行SQL语句。
在管理环境中,比如,J2EE应用服务器就是典型的管理环境。虽然应用服务器通常是为了支持EJB而设计的,但即使你不使用EJB实体Bean,你仍然可以利用它提供的其它服务。Hibernate经常与会话或消息驱动EJB一起使用,EJB调用相同的Hibernate API:Session(会话)、Transaction(事务)和Query(查询)。与Hibernate相关的代码在非管理与管理环境之间是完全可移植的,Hibernate透明地处理了不同的连接与事务策略。应用服务器将连接池对外显示为JNDI绑定数据源。它是javax.jdbc.Datasource类的一个实例。你需要提供一个JNDI全限定名来告诉Hibernate,到哪里去查找JNDI数据源。
比如:
hibernate.connection.datasource = java:/comp/env/jdbc/AuctionDB
hibernate.transaction.factory_class = \
net.sf.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class = \
net.sf.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect
但是我们要知道:引自《Hibernate in Action》
引用
Java早就有了一个标准的事务API:JTA,它用来在J2EE管理环境中控制事务。这被称作容器管理的事务(CMT)。如果存在JTA事务管理器,JDBC连接将被它支持并完全位于它的控制之下。这与非管理环境不同,在非管理环境中应用(或连接池)直接管理JDBC连接和JDBC事务。
因为Hibernate需要在这两种环境之间保证可移植性,因此它定义了一组控制事务的API。Hibernate的事务接口抽象了下层的JTA或JDBC 事务(或者 ,甚至潜在的CORBA事务) 这个下层的事务策略可以使用属 性。
hibernate. connection.factory_class来设置,它可以取下列两值之一:
引用
■ net.sf.hibernate.transaction.JDBCTransactionFactory代表了直接的JDBC事务。
这种策略应该与非管理环境中的连接池一起使用,并且如果没有指定任何策略时它就是缺省
值。
■ net.sf.hibernate.transaction.JTATransactionFactory代表了JTA。对于CMT这是正
确的策略,此时连接由JTA支持。注意如果调用beginTransaction()时已经有一个JTA事务在运行,随后的工作将发生在那个事务的上下文中(否则,将会开始一个新的JTA事务)
所以我们要记住使用J2EE服务器工作时必需的两个步骤:像前面描述的那样为Hibernate事
务API设置工厂类以支持JTA,并且声明你的应用服务器特定的事务管理器的查找策略。
配置文件
如果使用hibernate开发的话,对hibernate的配置了解清楚会很有帮助。下面是找资料总结的,如有错,请不吝指出,谢谢~
下面是关于JDBC连接配置中最重要的配置:
1. hibernate.connection.driver_class : 设置连接数据库的驱动.
2. hibernate.connection.url : 设置所需连接数据库服务的URL
3. hibernate.connection.username : 连接数据库的用户名
4. hibernate.connection.password : 连接数据库的密码
5. hibernate.connection.pool_size : 设置hibernate数据库连接池的最大并发连接数
6. hibernate.dialect : 设置连接数据库使用的方言
上面配置了Hibernate数据库连接池的最大连接并发数,但是Hibernate自带的连接池仅有测试价值。并不推荐在实际的项目中使用。实际项目中可以使用c3p0连接池。所以使用c3p0连接池配置代替hibernate.connection.poo_size即可。
c3p0配置如下:
1. hibernate.c3p0.max_size : c3p0连接池的最大连接数
2. hibernate.c3p0.min_size : c3p0连接池的最小连接数
3. hibernate.c3p0.timeout : c3p0连接池连接的超时时长,单位为秒
4. hibernate.c3p0.max_statements : c3p0缓存 Statement的数量数
故,完整的配置文件内容如下(使用MySQL数据库):
Xml代码
<!DOCTYPEhibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--设置数据库连接的驱动-->
<propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!--设置所需连接数据库服务的URLlocalhost可以改成远程IP地址onlinestore为数据库名-->
<propertyname="hibernate.connection.url">jdbc:mysql://localhost/onlinestore</property>
<!--设置连接数据库的用户名-->
<propertyname="hibernate.connection.username">root</property>
<!--设置连接数据库的密码-->
<propertyname="hibernate.connection.password">root</property>
<!--设置显示sql语句方便调试-->
<propertyname="hibernate.show_sql">true</property>
<!--c3p0连接池的最大连接数-->
<propertyname="hibernate.c3p0.max_size">20</property>
<!--c3p0连接池的最小连接数-->
<propertyname="hibernate.c3p0.min_size">1</property>
<!--c3p0连接池连接的超时时长如果空闲连接的空闲超过了timeout,就会删除-->
<propertyname="hibernate.c3p0.timeout">1800</property>
<!--c3p0缓存Statement的数量数-->
<propertyname="hibernate.c3p0.max_statements">50</property>
<!--sql连接方言此处为MySQL-->
<propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
分享到:
相关推荐
- 配置文件:创建hibernate.cfg.xml文件用于配置数据库连接信息等。 #### 二、核心概念与API介绍 - **Session与SessionFactory**: - SessionFactory:是重量级的不可变对象,它的创建开销很大,通常在整个应用...
2. **配置文件**:Hibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息、实体类的扫描路径、缓存设置等,它是 Hibernate 初始化时读取的重要文件。 3. **实体类与表映射**:在Hibernate中,每个Java类...
它从Hibernate配置文件中读取信息,如数据库连接参数,缓存策略等。 2. **Session**:Session是与数据库交互的入口点,它代表了一次数据库会话。在Session中,你可以执行CRUD(创建、读取、更新、删除)操作,进行...
在使用这些jar包时,开发者需要创建Hibernate配置文件(如`hibernate.cfg.xml`),定义数据库连接参数、实体类、映射文件等信息。然后,通过SessionFactory创建Session,使用Session进行CRUD操作。同时,利用HQL或...
通过配置文件(如hibernate.cfg.xml),我们可以定义实体类与数据库表之间的关系,包括主键生成策略、属性映射等。 在Hibernate中,实体类通常继承自Hibernate提供的`Serializable`接口,表示对象可以被序列化,以...
1. Hibernate配置:包括XML配置文件hibernate.cfg.xml的编写,其中包含了数据库连接信息、方言选择、缓存配置等关键设置。此外,还有基于注解的配置方式,使配置更为简洁明了。 2. 实体类与数据表映射:通过...
`hibernate.cfg.xml`是Hibernate的全局配置文件,包含了数据库连接信息、方言设置、缓存策略等关键参数。而实体类的映射文件则详细描述了每个实体类与数据库表之间的映射规则,如字段对应关系、主键生成策略等。 在...
在Hibernate中,配置文件(Hibernate.cfg.xml)是设置数据库连接、方言、缓存策略等基础信息的地方。开发者可以通过XML或Java注解的方式来定义映射文件(hbm.xml),将Java类与数据库表进行映射。映射文件中包含了...
- **Hibernate配置**: 配置文件中的`jdbc.url`、`hibernate.dialect`、`jdbc.username`、`jdbc.password`、`hibernate.default_catalog`以及`hibernate.default_schema`等参数需根据实际情况进行调整。 **注意事项*...
2. **配置Hibernate**:创建`persistence.xml`文件,这是JPA的配置文件,其中包含了数据源、实体类、持久化单元等信息。例如,指定Hibernate为JPA提供实现,配置数据库连接参数等。 3. **实体类定义**:编写Java...
这包括设置`hibernate.cfg.xml`配置文件,定义数据源、JDBC驱动、连接池等参数,以及实体类的映射文件(`.hbm.xml`或注解形式)。 ### 三、实体类和对象持久化 在Hibernate中,实体类代表数据库中的表,实体类的...
3. **实体映射**:这是Hibernate的核心部分,讲解如何通过Hibernate的注解或XML配置文件将Java类映射到数据库表。包括实体类的定义、属性映射、主键生成策略、关联映射(一对一、一对多、多对一、多对多)等。 4. *...
XDoclet是一款强大的Java注解处理器,它可以根据注释自动生成持久化层的代码、配置文件,如Hibernate的实体类、映射文件等,从而减轻开发者手动编写这些文件的工作量。 XDoclet的使用主要涉及以下几个关键知识点: ...
Hibernate通过注解或XML配置文件将Java类与数据库表进行映射。实体类通常对应数据库中的表,类的属性对应表的列。`@Entity`注解标识一个类为实体类,`@Table`注解指定对应的数据库表。 4. **持久化类与主键** ...
2. **配置文件**: Hibernate的配置文件(hibernate.cfg.xml)用于设置数据库连接信息,包括数据库URL、用户名、密码以及方言等。 3. **实体类(Entity)**: 实体类代表数据库中的表,使用`@Entity`注解标识。每个...
- **主配置文件**:编写`hibernate.cfg.xml`配置文件,配置数据库连接等信息。 ##### 2. 整合Spring与Hibernate - **整合方式1**:保留原生Hibernate配置文件,仅修改部分配置项以适应Spring环境。 - **整合方式2**...
1. **对象关系映射(ORM)**: Hibernate通过XML配置文件或注解来定义对象与数据库表之间的映射关系,使得Java对象可以直接保存和查询。 2. **Session API**: Hibernate的Session接口是与数据库进行交互的主要接口,...
- **`hibernate.cfg.xml`**:是Hibernate的核心配置文件,用于设置连接数据库的信息、指定映射文件的位置等。 - **`hibernate.properties`**:也可以用来配置Hibernate的连接信息,通常用于简单项目。 #### POJO...
配置方面,Hibernate允许开发者通过hibernate.cfg.xml文件或Java代码进行配置,包括数据库连接信息、实体类映射、缓存策略等。配置文件中可以指定JDBC驱动、数据库URL、用户名和密码,以及实体类与表的映射关系。 ...
1. **配置SessionFactory**:通过配置文件或注解的方式指定Hibernate的相关属性,如数据库驱动、连接字符串等。 2. **使用HibernateTemplate或HibernateDaoSupport**:Spring提供了`HibernateTemplate`和`...