c3p0连接池报死锁,APPARENT DEADLOCK!!!
程序员文章站
2022-06-11 21:43:42
...
c3p0连接池报死锁,APPARENT DEADLOCK!!!
我的问题是每次获取数据库连接时都去new了一个new ComboPooledDataSource(name);
解决办法:将已连接的数据源放入map,获取新的数据库连接时直接取用就行了。
//获取连接池中的连接
public synchronized final Connection getConnection(String name){
if(dataSourceMap.containsKey(name)){//不用每次获取数据库连接都去new一个数据连接,否则会做出现连接死锁的现象
ds=dataSourceMap.get(name);
}else {
ds = new ComboPooledDataSource(name);
dataSourceMap.put(name,ds);
}
Connection conn = null;
try {
conn = ds.getConnection();
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
上一篇: C3P0错误APPARENT DEADLOCK!!!解决
下一篇: 数据库笔记