Hibernate JDBC连接
通常你希望SessionFactory来为你创建和缓存(pool)JDBC连接. 如果你采用这种方式, 只需要如下例所示那样,打开一个Session:
- Session session = sessions.openSession(); // open a new Session
一旦你需要进行数据访问时, 就会从连接池(connection pool)获得一个JDBC连接.
为了使这种方式工作起来, 我们需要向Hibernate传递一些JDBC连接的属性. 所有Hibernate属性的名字和语义都在org.hibernate.cfg.Environment中定义. 我们现在将描述JDBC连接配置中最重要的设置.
如果你设置如下属性,Hibernate将使用java.sql.DriverManager来获得(和缓存)JDBC连接 :
表 1. Hibernate JDBC属性
属性名
|
用途
|
hibernate.connection.driver_class
|
jdbc驱动类
|
hibernate.connection.url
|
jdbc URL
|
hibernate.connection.username
|
数据库用户
|
hibernate.connection.password
|
数据库用户密码
|
hibernate.connection.pool_size
|
连接池容量上限数目
|
但Hibernate自带的连接池算法相当不成熟. 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。 出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。这将关闭Hibernate自带的连接池. 例如, 你可能会想用C3P0.
C3P0是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目录下。 如果你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接. 如果你更原意使用Proxool, 请参考发 行包中的hibernate.properties并到Hibernate网站获取更多的信息.
这是一个使用C3P0的hibernate.properties样例文件:
- hibernate.connection.driver_class = org.postgresql.Driver
-
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
-
hibernate.connection.username = myuser
-
hibernate.connection.password = secret
-
hibernate.c3p0.min_size=5
-
hibernate.c3p0.max_size=20
-
hibernate.c3p0.timeout=1800
-
hibernate.c3p0.max_statements=50
-
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
为了能在应用程序服务器(application server)中使用Hibernate, 应当总是将Hibernate 配置成从注册在JNDI中的Datasource处获得连接,你至少需要设置下列属性中的一个:
表 2. Hibernate数据源属性
属性名
|
用途
|
hibernate.connection.datasource
|
数据源JNDI名字
|
hibernate.jndi.url
|
JNDI提供者的URL (可选)
|
hibernate.jndi.class
|
JNDI InitialContextFactory类 (可选)
|
hibernate.connection.username
|
数据库用户 (可选)
|
hibernate.connection.password
|
数据库用户密码 (可选)
|
这是一个使用应用程序服务器提供的JNDI数据源的hibernate.properties样例文件:
- hibernate.connection.datasource = java:/comp/env/jdbc/test
-
hibernate.transaction.factory_class = \
- org.hibernate.transaction.JTATransactionFactory
-
hibernate.transaction.manager_lookup_class = \
- org.hibernate.transaction.JBossTransactionManagerLookup
-
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
从JNDI数据源获得的JDBC连接将自动参与到应用程序服务器中容器管理的事务(container-managed transactions)中去.
任何连接(connection)属性的属性名都要以"hibernate.connnection"开头. 例如, 你可能会使用hibernate.connection.charSet来指定字符集charSet.
通过实现org.hibernate.connection.ConnectionProvider接口,你可以定义属于 你自己的获得Hibernate JDBC连接的插件策略。通过设置hibernate.connection.provider_class, 你可以选择一个自定义的实现.
分享到:
相关推荐
Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...
标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持了对前一版本的兼容性。配置文件是Hibernate的核心部分,它定义了与数据库的...
标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...
### Hibernate 连接池配置详解 #### 一、概述 在使用Hibernate进行数据库操作时,合理配置连接池是非常重要的一步。连接池可以帮助我们更高效地管理数据库连接资源,避免频繁创建与销毁数据库连接带来的性能开销。...
**JDBC与Hibernate事务详解** 在Java开发中,数据库事务管理是确保数据一致性、完整性和原子性的重要机制。本讲解将深入探讨JDBC(Java Database Connectivity)和Hibernate两种不同的技术在处理事务时的方法和特点...
### Hibernate 参数配置详解 #### 一、概述 Hibernate 是一款流行的 Java 持久层框架,它通过提供一套丰富的 API 和配置选项来简化数据库访问。本文档将深入探讨 Hibernate 的核心配置参数及其功能,帮助开发者更...
"Hibernate 连接Mycat例子详解_正能量_20150507.docx"文档很可能包含了整个示例的详细步骤,包括项目构建、Mycat配置、Hibernate配置、实体类创建、DAO层接口及实现、以及如何运行和测试应用。这份文档会指导开发者...
### Hibernate配置参数详解 #### 一、数据库连接配置 在Hibernate框架中,为了与数据库进行交互,必须正确地配置数据库连接参数。以下是一些关键的配置项及其含义: 1. **`hibernate.connection.driver_class`**:...
《Hibernate2与Hibernate3连接池配置详解》 在Java的持久层框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作,极大地提高了开发效率。然而,为了优化...
【jdbc基础知识详解】 Java Database Connectivity (JDBC) 是Java编程语言中用来规范应用程序如何访问数据库的应用程序接口(API)。它是Java SE的一部分,允许Java开发者连接到各种类型的数据库,执行SQL语句,...
配置数据库连接,这一步需要添加相应的JDBC驱动,例如MySQL的mysql-connector-java.jar。在MyEclipse中,可以使用DB Browser工具来创建和管理数据库连接。 5. **导入Hibernate2.0**: 添加Hibernate的库,如...
### 数据库JDBC连接知识点详解 #### 一、概述 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言...
**Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...
总之,`Hibernate连接Mycat例子详解.zip`提供的资源是一个很好的学习材料,它涵盖了从Mycat的配置、数据分片,到Hibernate的配置、实体操作等一系列步骤,帮助开发者理解如何在Java应用中集成这两种技术,实现高效的...
【hibernate问题详解】 Hibernate是一款强大的Java对象关系映射(ORM)框架,它通过将数据库操作转换为对Java对象的操作,简化了开发过程。在理解Hibernate时,我们需要对比其他两种常见的数据访问技术:JDBC和...
在轻量级的Hibernate环境中,事务管理是通过Hibernate自己的API,而不是依赖于容器提供的服务,如JDBC或JTA。 关联关系映射是Hibernate的重要特性,用于将Java对象与数据库表之间的关系进行建模。这里我们重点关注...
Hibernate 知识点详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于 Java 应用程序的持久层解决方案。下面是 Hibernate 知识点的详解: Hibernate 概述 Hibernate 是一个轻量级的 Java EE...