2.3.2在非管理环境中的配置

本文介绍了在非管理环境中Hibernate如何与数据库连接池交互,包括连接池的重要性、配置方法及Hibernate的启动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在非管理的环境中,例如一个Servlet容器,应用程序负责来取得数据库的连接,而Hibernate作为程序的一部分,理所当然的负责这部分的功能。由你来告诉Hibernate来获得这些连接,当然每次都创建新的数据库连接并不是一个明智的选择,你需要有一个数据库连接池来维护一定数目的连接,使用连接池的理由如下:

  • 创建数据库连接的代价很高
  • 维护数据库的连接很消耗性能
  • 对于一些数据库驱动来说,创建preparedstatement也是很消耗性能的

图2.2展示了数据库连接池在web应用环境中的角色。由于这是一个非管理的环境,所以并没有实现数据库连接池,你通常需要自己实现一个连接池或者依靠第三方的连接池,通常在没有Hiernate的情况下,应用程序需要自己去从连接池取得数据库连接。

如果存在Hibernate的情况下,图的情况会发生一些变化,Hibernate来扮演数据库连接池客户端的角色,应用程序使用Session和Query的API来完成持久化操作,需要做的是仅仅维护事务而已。

使用数据库连接池

Hibernate定义了插件的体系结构支持连接池的插拔。其默认使用的是C3P0。Hibernate会使用指定的配置来完成连接池的配置。在列表2.4你将看到这些配置。

image

图2.2 非管理环境中的数据库连接池

image

图2.3 带有Hibernate的非管理环境中的数据库连接池

列表2.4

image

以上的代码行描述了一些信息,让我们从第一行开始看起:

  • 数据库驱动的类名字
  • 数据库连接名字
  • 数据库用户名
  • 数据库密码
  • 数据库方言
  • 数据库连接池保持最少的连接数
  • 数据库连接池保持最多的连接数
  • 超时时间,超过这个时间,空闲的连接将从连接池都移除
  • preparedStatement缓存的最大数目
  • 在连接验证前,数据库空闲的秒数

设置哪些hibernate.c3p0的属性说明使用的数据库连接池是C3P0,相比以上的这些属性,C3P0有更多的特性,如果你想了解更多,请参照Hibernate API文档。

启动Hibernate

利用这些属性,我们来如何启动hibernate呢,这些属性被放在hibernate.properties文件中,你要做的就是将文件放在classpath上面。当你初次创建Configuration对象的时候,它会自动的检测到这些配置。

我们现在总结一下刚才所学到的配置步骤:

  • 将数据库驱动Jar和hibernate2.jar放在你的classpath上面
  • 将Hibernate的那些部署文件放在你的类路径上
  • 选择你要使用的数据库连接池,不要忘记指定方言
  • 让Configuration知道你的这些属性放在hibernate.properties文件中
  • 创建你的Configuration,SessionFactory,Session

不幸的是,你现在还没有任何映射文件,如果你迫不及待的想看到运行结果,你可以运行之前的Hello World,如果你想了解管理环境中是如何配置的,那么你就应该继续阅读下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值