这是我配置的c3p0
package com.forward.five.untils;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Until {
/***
* 连接数据库用到的常量
*/
private static ComboPooledDataSource cpd = null;
final String className="com.mysql.jdbc.Driver";
final String url="jdbc:mysql://127.0.0.1:3306/manager";
final String username="root";
final String password="";
private Connection conn=null;
private ResultSet rs=null;
private Statement st=null;
/**
* 声明本类的对象
*/
private static C3p0Until cp = null ;
/**
* 构造函数
* 配置c3p0
*/
private C3p0Until(){
cpd = new ComboPooledDataSource();
cpd.setUser(username);
cpd.setPassword(password);
cpd.setJdbcUrl(url);
try {
cpd.setDriverClass(className);
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cpd.setInitialPoolSize(20);
cpd.setMaxPoolSize(200);
cpd.setMinPoolSize(10);
cpd.setMaxStatements(0);
cpd.setMaxIdleTime(0);
//cpd.setMaxStatements(50);
}
/**
* 加锁
* 类的入口
* @return
*/
public synchronized static C3p0Until getC3p0Until(){
if(cp == null){
cp = new C3p0Until();
}
return cp;
}
/**
* 连接数据库
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public Connection getConnection() throws ClassNotFoundException, SQLException{
return cpd.getConnection();
}
/**
* 执行sql语句
* @param sql
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
public ResultSet executeQuery(String sql) throws SQLException, ClassNotFoundException{
conn=this.getConnection();
st=conn.createStatement();
return rs=st.executeQuery(sql);
}
/**
* 关闭数据库
* @param rs
* @param st
* @param conn
*/
public void close(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null)
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
这是错误
------解决方案--------------------
楼主检查下代码,看看执行完jdbc后有没有close掉。
我估计是没有调用close方法。
------解决方案--------------------
已经告诉你是没有更多的了。
你使用的完有释放连接吗
------解决方案--------------------
mysql的连接接数用完了
查看连接数:
show variables like 'max_connections';
默认应该是100
------解决方案--------------------
配置不合理导致的,数据源参数就用默认的就好了,特殊情况下再手工配置