【散分,速来】DBCP2怎么样动态连接池的用户密码

J2EE 码拜 7年前 (2015-11-16) 729次浏览
项目采用DBCP2作为连接池,现在想动态去修改连接池的密码,怎么实现呢?
本人的测试代码如下,修改密码后,获取的Connection还是没有改变,为什么呢?

package org.dbcp;
import java.sql.Connection;
import org.apache.commons.dbcp2.BasicDataSource;
public class DbcpTest {
	public static void main(String[] args) throws Exception {
		// 创建连接池
		BasicDataSource bds = new BasicDataSource();
		bds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
		bds.setUrl("jdbc:oracle:thin:@Lijinsheng-PC:1521:orcl");
		bds.setUsername("MOJO");
		bds.setPassword("MOJO");
		bds.setInitialSize(0);
		bds.setMaxTotal(1);
		bds.setMinIdle(0);
		bds.setMaxIdle(1);
		bds.setMaxWaitMillis(1000);
		// 第一次查询
		Connection conn = bds.getConnection();
		if (conn.isClosed()) {
			System.out.println("无法连接");
		} else {
			System.out.println("连接正常");
		}
		conn.close();
		// 修改密码,再次查询
		bds.setPassword("Wrong");
		Connection conn2 = bds.getConnection();
		if (conn2.isClosed()) {
			System.out.println("无法连接");
		} else {
			System.out.println("连接正常");
		}
		conn2.close();
		// 关闭连接池
		bds.close();
	}
}

两次输出都是:

连接正常
连接正常
解决方案:100分
.getConnection();
个人理解是已经建立连接,并没有关闭,所以你判断 close 这个还是flase ,就打印了 连接正常

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明【散分,速来】DBCP2怎么样动态连接池的用户密码
喜欢 (0)
[1034331897@qq.com]
分享 (0)