public void test_1() throws Exception { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl("jdbc:mysql://10.20.153.104:3306/druid2"); dataSource.setUsername("root"); dataSource.setPassword("root"); Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT 1"); rs.next(); conn.close(); Assert.assertEquals(true, stmt.isClosed()); Assert.assertEquals(true, rs.isClosed()); rs.close(); stmt.close(); dataSource.close(); }
public void test_idle2() throws Exception { // ManagementFactory.getPlatformMBeanServer().registerMBean(dataSource, // new ObjectName("com.alibaba:type=DataSource")); // 第一次创建连接 { Assert.assertEquals(0, dataSource.getCreateCount()); Assert.assertEquals(0, dataSource.getActiveCount()); Connection conn = dataSource.getConnection(); Assert.assertEquals(dataSource.getInitialSize(), dataSource.getCreateCount()); Assert.assertEquals(dataSource.getInitialSize(), driver.getConnections().size()); Assert.assertEquals(1, dataSource.getActiveCount()); conn.close(); Assert.assertEquals(0, dataSource.getDestroyCount()); Assert.assertEquals(1, driver.getConnections().size()); Assert.assertEquals(1, dataSource.getCreateCount()); Assert.assertEquals(0, dataSource.getActiveCount()); } for (int i = 0; i < 1000; ++i) { concurrent(200); Assert.assertEquals("" + i, true, dataSource.getPoolingCount() <= dataSource.getMaxActive()); dataSource.shrink(); } // 连续打开关闭单个连接 for (int i = 0; i < 1000; ++i) { Assert.assertEquals(0, dataSource.getActiveCount()); Connection conn = dataSource.getConnection(); Assert.assertEquals(1, dataSource.getActiveCount()); conn.close(); } // Assert.assertEquals(2, dataSource.getPoolingCount()); dataSource.close(); }
protected void setUp() throws Exception { driver = new MockDriver(); dataSource = new DruidDataSource(); dataSource.setUrl("jdbc:mock:xxx"); dataSource.setDriver(driver); dataSource.setInitialSize(1); dataSource.setMaxActive(14); dataSource.setMaxIdle(14); dataSource.setMinIdle(1); dataSource.setMinEvictableIdleTimeMillis(300 * 1000); // 300 / 10 dataSource.setTimeBetweenEvictionRunsMillis(180 * 1000); // 180 / 10 dataSource.setTestWhileIdle(true); dataSource.setTestOnBorrow(false); dataSource.setValidationQuery("SELECT 1"); dataSource.setFilters("stat"); }