/** * 配置数据源 * * @param ds * @return * @throws SQLException */ @Bean(initMethod = "init", destroyMethod = "close") public DataSource dataSource(DruidSettings ds) { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(ds.getUrl()); dataSource.setUsername(ds.getUsername()); dataSource.setPassword(ds.getPassword()); dataSource.setInitialSize(ds.getInitialSize()); dataSource.setMaxActive(ds.getMaxActive()); dataSource.setMinIdle(ds.getMinIdle()); dataSource.setMaxWait(ds.getMaxWait()); dataSource.setValidationQuery(ds.getValidationQuery()); dataSource.setTimeBetweenEvictionRunsMillis(ds.getTimeBetweenEvictionRunsMillis()); dataSource.setMinEvictableIdleTimeMillis(ds.getMinEvictableIdleTimeMillis()); dataSource.setTestWhileIdle(ds.isTestWhileIdle()); dataSource.setTestOnBorrow(ds.isTestOnBorrow()); dataSource.setTestOnReturn(ds.isTestOnReturn()); dataSource.setPoolPreparedStatements(ds.isPoolPreparedStatements()); dataSource.setMaxOpenPreparedStatements(ds.getMaxOpenPreparedStatements()); try { dataSource.setFilters(ds.getFilters()); } catch (SQLException e) { e.printStackTrace(); LOGGER.error("init druid source error", e); } LOGGER.debug("init druid source"); return dataSource; }
public void druid() throws Exception { DruidDataSource dataSource = new DruidDataSource(); dataSource.setInitialSize(initialSize); dataSource.setMaxActive(maxActive); dataSource.setMaxIdle(maxIdle); dataSource.setMinIdle(minIdle); dataSource.setMaxWait(maxWait); dataSource.setPoolPreparedStatements(true); dataSource.setDriverClassName(driverClass); dataSource.setUrl(jdbcUrl); dataSource.setPoolPreparedStatements(true); dataSource.setUsername(user); dataSource.setPassword(password); dataSource.setValidationQuery(validationQuery); dataSource.setTestOnBorrow(testOnBorrow); dataSource.setTestOnBorrow(testWhileIdle); dataSource.setTestOnBorrow(testOnReturn); dataSource.setRemoveAbandoned(removeAbandoned); dataSource.setRemoveAbandonedTimeout(removeAbandonedTimeout); dataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); dataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); dataSource.setNumTestsPerEvictionRun(numTestsPerEvictionRun); for (int i = 0; i < TEST_COUNT; ++i) { p0(dataSource, "druid", threadCount); } System.out.println(); }
public void init() throws SQLException { druidDataSource = new DruidDataSource(); // druidDataSource.setDriverClassName(driver); druidDataSource.setOracle(false); druidDataSource.setUrl(url); druidDataSource.setUsername(username); druidDataSource.setPassword(password); druidDataSource.setMaxActive(maxActive); druidDataSource.setMinIdle(minIdle); druidDataSource.setInitialSize(initialSize); // 配置获取连接等待超时的时间。 单位是毫秒 druidDataSource.setMaxWait(3000); // 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 druidDataSource.setTimeBetweenEvictionRunsMillis(60000); // 配置一个连接在池中最小生存的时间,单位是毫秒 druidDataSource.setMinEvictableIdleTimeMillis(300000); // 打开PSCache,并且指定每个连接上PSCache的大小 druidDataSource.setPoolPreparedStatements(false); druidDataSource.setTestOnBorrow(false); druidDataSource.setTestWhileIdle(true); druidDataSource.setValidationQuery("SELECT 'x'"); druidDataSource.init(); }
public void test_change_maxWait() throws Exception { DruidPooledConnection conn = dataSource.getConnection().unwrap(DruidPooledConnection.class); conn.close(); dataSource.setMaxWait(1); }