<仅供个人复习使用>
1.context.xml 配置

<Context>
<Resource name="jdbc/DBPool" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp2.BasicDataSourceFactory"
username="root"
password="123456"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8;"
maxTotal="100"
maxIdle="1000"
maxWaitMillis="5000" />
</Context>
2.DBCP连接池参数说明
username:传递给 JDBC 驱动的用于建立连接的用户名。
password:传递给 JDBC 驱动的用于建立连接的密码。
url:传递给 JDBC 驱动的用于建立连接的 URL。
driverClassName:使用的 JDBC 驱动的完整有效的 Java 类名。
initialSize:初始化连接;连接池启动时创建的初始化连接数量,1.2 版本后支持;默认值为 0。
maxActive【maxTotal】:最大活动连接;连接池在同一时间能够分配的最大活动连接的量,如果设置为非正数则表示不限制,默认值 8。
maxIdle:最大空闲连接;连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,默认值为 8。如果设置为负数表示不限制。
minIdle:最小空闲连接;连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为 0 则不创建。
maxWait:最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数)超过时间则抛出异常,如果设置为-1 表示无限等待。
testOnReturn:是否在归还到池中前进行检验,默认值 false。
testWhileIdle:连接是否被空闲连接回收器(如果有)进行检验。如果检测失败,则连接将被从池中去除。设置为 true 后如果要生效,validationQuery 参数必须设置为非
空字符串,默认值为 false。
minEvictableIdleTimeMillis:连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒,默认值 1000 * 60 * 30。
numTestsPerEvictionRun:在每次空闲连接回收器线程(如果有)运行时检查的连接数量;默认值 3。
timeBetweenEvictionRunsMillis:在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位。如果设置为非正数,则不运行空闲连接回收器线程。默认值-1。
validationQuery:SQL 查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个 SQL SELECT 并且必须返回至少一行记录。默
认值 null。
testOnBorrow:是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个。默认值 true。
3.获得连接
public static Connection getConnection() {
Connection conn = null;
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/DBPool");
conn = ds.getConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
return conn;
}
版权声明:本文为m0_48173416原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。