浏览 18069 次
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-06-10
(仅仅是个人摸索,如有问题,欢迎指点) 需要的包: Commons-Pool (下载地址:http://jakarta.apache.org/commons/pool/) :提供一个一般对象池的接口,而且包含实现了通常池工具箱。 Commons-DBCP(下载地址:http://jakarta.apache.org/commons/dbcp/) :提供数据库连接池服务。DBCP很聪明,把Commons-Pool和JDBC的driver封装起来,使达到连接池的目的。 Hibernate属性文件的配置参数 #连接池的最大活动个数 hibernate.dbcp.maxActive 100 #当连接池中的连接已经被耗尽的时候,DBCP将怎样处理( 0 = 失败, 1 = 等待, 2= 增长) hibernate.dbcp.whenExhaustedAction 1 #最大等待时间 hibernate.dbcp.maxWait 120000 #没有人用连接的时候,最大闲置的连接个数。 hibernate.dbcp.maxIdle 10 ##以下是对prepared statement的处理,同上。 hibernate.dbcp.ps.maxActive 100 hibernate.dbcp.ps.whenExhaustedAction 1 hibernate.dbcp.ps.maxWait 120000 hibernate.dbcp.ps.maxIdle 10 ## 可选,是否对池化的连接进行验证 #给出一条简单的sql语句进行验证 #hibernate.dbcp.validationQuery select 1 from dual #在取出连接时进行有效验证 #hibernate.dbcp.testOnBorrow true #在放回连接时进行有效验证 #hibernate.dbcp.testOnReturn false #Hibernate已经实现了DBCP Provider实现,别忘了在下面的键值去掉#字符 hibernate.connection.provider_class net.sf.hibernate.connection.DBCPConnectionProvider 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-06-17
我看官方文档中的例子是用Tomcat的连接池来完成对数据库连接的。
我还看到某些文档直接在JBuilder中开发Hibernate的应用,请问,这种情况下,是否也需要在hibernate.cfg.xml中指定数据库的连接方式。 但是我看那个文档中并没有指定。 盼斧正,谢谢了。^_^ |
|
返回顶楼 | |
发表时间:2004-06-18
楼上,用Tomcat大概是直接用jndi找到连接的吧。
我贴一个xml的: <property name="connection.pool.size">2</property> <property name="statement_cache.size">25</property> <property name="jdbc.fetch_size">50</property> <property name="jdbc.batch_size">30</property> <property name="show_sql">true</property> <property name="connection.provider_class">net.sf.hibernate.connection.DBCPConnectionProvider</property> <property name="dbcp.maxActive">100</property> <property name="dbcp.whenExhaustedAction">1</property> <property name="dbcp.maxWait">120000</property> <property name="dbcp.maxIdle">10</property> <property name="dbcp.ps.maxActive">100</property> <property name="dbcp.ps.whenExhaustedAction">1</property> <property name="dbcp.ps.maxWait">120000</property> <property name="dbcp.ps.maxIdle">100</property> |
|
返回顶楼 | |
发表时间:2007-02-14
《精通hibernate java对象持久化技术详解>>那本书说 :hiberante开发组优先推荐的是 C3P0和Proxool, 而 DBCP只是支持而已。
|
|
返回顶楼 | |
发表时间:2007-02-22
引用 DBCP很聪明,把Commons-Pool和JDBC的driver封装起来,使达到连接池的目的。
DBCP在底层的连接池是用Commons-Pool去实现的,也就是说,连接池是在对象池之上的。 它对JDBC driver只是一个封装,譬如jdbc的getConnection,其实得到的Connection不是真正的Connection,而是一个proxy Connection,这样,方便close等操作,譬如,close就是将该连接直接释放到连接池,而不是关闭。 |
|
返回顶楼 | |