可以加一个测试sql语句: select 1作为是否可以连接的条件

解决方案 »

  1.   

    JAVA JDBC连接数据库,连接状态判断 : public void initDS() {
    BasicDataSource ds = new BasicDataSource();
    ds.setDriverClassName(resb.getString("driverClassName"));
    ds.setUsername(resb.getString("username"));
    ds.setPassword(resb.getString("password"));
    ds.setUrl(resb.getString("url"));
    ds.setInitialSize(Integer.parseInt(resb.getString("initialSize"))); // 初始的连接数
    ds.setMaxActive(Integer.parseInt(resb.getString("maxActive"))); // 最大链接数
    ds.setMaxIdle(Integer.parseInt(resb.getString("maxIdle"))); // 最大空闲数
    ds.setMaxWait(Integer.parseInt(resb.getString("maxWait"))); // 等待时间

    ds.setTestOnBorrow(true);//调取连接时检查有效性
    ds.setTestOnReturn(true);
    ds.setTestWhileIdle(true);
    ds.setValidationQuery("select 1 from dual");//验证连接有效性的方式,这步不能省
    ds.setTimeBetweenEvictionRunsMillis(3600000);
    ds.setMinEvictableIdleTimeMillis(18000000);
    DS = ds;
    }