【Web学习笔记】数据库连接池配置(DBCP)

<仅供个人复习使用>

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&amp;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版权协议,转载请附上原文出处链接和本声明。