数据库连接池

来源:互联网 发布:辐射4画面优化补丁 编辑:程序博客网 时间:2024/06/14 08:42

多放在Map集合中

但为什么要放在池里面那?

销毁和创建会很麻烦,所以放在缓冲池中,拿用都会很快

连接池必须实现:javax.sql.DataSource!

在连接池中的connection对象中的close()并不是关闭,而是归还给连接池

java的代码

@Test
public void demo() throws SQLException{
//创建连接池对象
BasicDataSource dataSource=new BasicDataSource();

//配置四大参数
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/项目名");
dataSource.setUsername("root");
dataSource.setPassword("密码");
//配置池参数
dataSource.setMaxActive(20);//最大活动连接数,最多20个连接
dataSource.setMinIdle(3);//最小空置连接
dataSource.setMaxWait(1000);//最大等待时间为1second

//得到连接的对象
Connection con=dataSource.getConnection();
System.out.println(con.getClass().getName());
//输出为org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
//装饰者模式,对方法的一些增强

//连接池内部创建了连接对象!
//连接池使用mysql对象进行装饰,只对close()进行了增强
//装饰后的close()只是把连接归还给了池
con.close();
}

0 0