官网:
commons-dbcp2包依赖于commons-pool2包中的代码来提供底层对象池机制。
DBCP现在有三种不同的版本来支持不同版本的JDBC。如下所示
由Java 7运行的应用程序应使用DBCP 2。
由Java 6运行的应用程序应使用DBCP 1.4。
在Java 1.4下运行时应使用DBCP 1.3。
DBCP 2基于Commons Pool 2,与DBCP 1.x相比,提供了更高的性能,JMX支持以及众多其他新功能。 由于DBCP 2.x与DBCP 1.x不是兼容的,所以升级到2.x的用户应该知道Java包名称已经改变,以及Maven坐标。 用户还应该注意,一些配置选项(例如maxActive to maxTotal)已被重命名.
username
连接的用户名,通过驱动创建我们需要的连接
password
连接的密码,通过驱动创建我们所需要的连接.
url
连接的路径,通过驱动创建我们所需要的连接.
driverClassname
要使用的JDBC驱动程序的完全限定的Java类名称
connectionProperties
JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] 注意:”username” 与 “password” 两个属性会被明确地传递,因此这里不需要包含他们。
比如:
注意: If maxIdle is set too low on heavily loaded systems it is possible you will see connections being closed and almost immediately new connections being opened. This is a result of the active threads momentarily closing connections faster than they are opening them, causing the number of idle connections to rise above maxIdle. The best value for maxIdle for heavily loaded system will vary but the default is a good starting point.
This component has also the ability to pool PreparedStatements. When enabled a statement pool will be created for each Connection and PreparedStatements created by one of the following methods will be pooled:
NOTE - Make sure your connection has some resources left for the other statements. Pooling PreparedStatements may keep their cursors open in the database, causing a connection to run out of cursors, especially if maxOpenPreparedStatements is left at the default (unlimited) and an application opens a large number of different PreparedStatements per connection. To avoid this problem, maxOpenPreparedStatements should be set to a value less than the maximum number of cursors that can be open on a Connection.
If you have enabled removeAbandonedOnMaintenance or removeAbandonedOnBorrow then it is possible that a connection is reclaimed by the pool because it is considered to be abandoned. This mechanism is triggered when (getNumIdle() < 2) and (getNumActive() > getMaxTotal() - 3) and removeAbandonedOnBorrow is true; or after eviction finishes and removeAbandonedOnMaintenance is true. For example, maxTotal=20 and 18 active connections and 1 idle connection would trigger removeAbandonedOnBorrow, but only the active connections that aren’t used for more then “removeAbandonedTimeout” seconds are removed (default 300 sec). Traversing a resultset doesn’t count as being used. Creating a Statement, PreparedStatement or CallableStatement or using one of these to execute a query (using one of the execute methods) resets the lastUsed property of the parent connection.
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12780.html