Hibernate连接池配置详解!

Hibernate支持第三方的联接池,官方推荐的联接池是C三P零,Proxool,以及DBCP。

在配备联接池时急需注意的有3点:

1、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐施用,官方的解释是这个联接池存在缺陷。如其你由于某种原因急需在Hibernate3中运用DBCP,提议采取JNDI模式。

2、默许情况下(即没配备联接池的情况下),Hibernate能采取内建的联接池。但这个联接池性能不佳,且存在诸多BUG(写稿人就曾在Mysql环境停被八小时联接悬空问题困扰过),因而官方也只是提议仅在开发环境停应用。

3、Hibernate二和Hibernate三的定名空间有所变更。比如,配备C三P零时的provider_class有Hibernate2环境停应用net.sf.hibernate.connection.C三P零ConnectionProvider,在Hibernate3环境停运用org.hibernate.connection.C三P零ConnectionProvider。

下部是Hibernate环境下几种常见的联接池配备:

一.Hibernate默许联接池





com.mysql.jdbc.Driver



jdbc:mysql://localhost:3306/schoolproject

true
UTF-八


root



true



org.hibernate.dialect.MySQLDialect






二.C三P0联接配备





com.mysql.jdbc.Driver



jdbc:mysql://localhost:3306/schoolproject

true
UTF-八


root




org.hibernate.connection.C三P零ConnectionProvider

20

120
100
120


true



org.hibernate.dialect.MySQLDialect






三.proxool联接池

(一) 先写proxool的配置文件,文件名:proxool.xml(通常放在与hibernate.cfg.xml资料在同一个索引中)本例配备的是MYSQL数据库,数据库的名字为schoolproject



DBPool



jdbc:mysql://localhost:3306/schoolproject?useUnicode=true&characterEncoding=UTF八


com.mysql.jdbc.Driver



90000


20



100






(二)配备hibernate.cfg.xml资料






org.hibernate.connection.ProxoolConnectionProvider

DBPool

proxoolconf.xml


true



org.hibernate.dialect.MySQLDialect






(一) hibernate.connection.provider_class定义Hibernate的联接加载种,这边Proxool联接池是用这个,不同的联接池有不同的加载种,可以查阅Hibernate文档获取相干信息 (二) hibernate.proxool.pool_alias这边乃是用我们上边谈到的联接池的别号 (三) hibernate.proxool.xml是向Hibernate宣言联接池的配置文件位置,可以用相对或绝对途径,用相对路径时要注意一定在要Path范围内!否则会抛出异常。 (四) dialect是宣言SQL话语的白话 (五) show_sql定义是不是展示Hibernate生成的SQL语言,通常在调试阶段设为true,完成后再改为false,这么有益于调试。 (六) 资源文件照射

四.JNDI联接池

数据源已经由应用服务配备美(如Web服务器),Hibernate亟需做的只是透过JNDI名查寻到此数据源。应用服务器将联接池对外展示为JNDI绑定数据源,它是javax.jdbc.Datasource种的一个范例。只要配备一个Hibernate资料,如:

view plaincopy to clipboardprint?
hibernate.connection.datasource=java:/comp/env/jdbc/schoolproject //JNDI名

hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory

hibernate.transaction.manager_loopup_class = org.hibernate.transaction.JBossTransactionManagerLookup

hibernate.dialect=org.hibernate.dialect.MySQLDialect
本文来源:
我的异常网
Java Exception
Dotnet Exception
Oracle Exception

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值