多线程访问数据库问题

NULL NULL 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
数据库使用的是MYSQL的DBCP连接池。。
以下我的数据库连接池类:
package com.smu.DB;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;

import java.util.Properties;
import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

/**
* 数据库连接池类
* */
public final class DbConnection {
public static DataSource DS;

/**
* 获取数据库连接
* */
static {
initDS();
}
public static synchronized Connection getCon(){
Connection con = null;
try {
if(DS == null){
initDS();
con = DS.getConnection();
}
else{
con = DS.getConnection();
}

} catch (SQLException e) {
System.out.print("取得连接出现异常");
e.printStackTrace();
}
return con;
}

/**
* 读取资源文件,设置连接池参数
* */
public static void initDS() {
Properties p = new Properties();
InputStream is = null;
try {
is = DbConnection.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
p.load(is);
is.close();
DS = BasicDataSourceFactory.createDataSource(p);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e) {

e.printStackTrace();
}
}
}

使用多个线程在调用getCon()的时候会出现
取得连接出现异常org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Data source rejected establishment of connection, message from server: "Too many connections")

是怎么回事呢?本人初学者。。
...全文
评论 3
收藏 已收藏
分享
返回顶部
NULL
Java EE 67,535 成员 225,843 内容