楼主检查下代码,看看执行完jdbc后有没有close掉。
我估计是没有调用close方法。

解决方案 »

  1.   

    mysql的连接接数用完了查看连接数:
    show variables like 'max_connections';默认应该是100
      

  2.   

    try {
    conn = C3p0Until.getC3p0Until().getConnection();
    ps = conn.prepareStatement(st);
    ps.setString(1, type);
    rs = ps.executeQuery();
    while (rs.next()) {
    FilesEntity fe = new FilesEntity();
    fe.setUrl(rs.getString("url"));
    lists.add(fe);
    } } catch (SQLException e) {
    // TODO Auto-generated catch block
    throw new RuntimeException(e.getMessage(), e);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    C3p0Until.getC3p0Until().close(null, ps, conn);
    }
    return lists;
    }
    我调用close()了 
      

  3.   

    cpd.setMaxPoolSize(200); // 接池中保留的最大连接数。Default: 15你这连接数太多了吧,mysql默认的连接数没那么多的。在给这个参数设值的时候,要参考数据库系统的默认连接数的。
      

  4.   

    LZ的代码明显就不是数据库连接池。因为你调用了 Connection.close();建议LZ还是先看看数据库连接池的原理吧。另外,如果LZ想自己建个连接池的话,建议将Connection放入ThreadLocal中。具体怎么用,可以问度娘。