dbcp连接池是Apache旗下的软件,开源连接池,使用步骤如下:
1)导入dbcp的jar包
commons-dbcp-1.4.jar 核心包
commons-pool-1.5.6.jar 辅助包
2)创建连接池对象BasicDataSource对象
3)设置连接参数(url,user,password,dirverClass)
4)设置连接池参数(初始连接数,最大连接数,最大等待时间)
5)获取连接对象(getConnection() 方法)
方法一:dbcp连接池的创建方式如下,写了一个@Test方法:
@Test public void test() throws SQLException{ //创建连接池对象 BasicDataSource ds = new BasicDataSource(); //设置连接数 ds.setUrl("jdbc:mysql://127.0.0.1:3306/test"); ds.setUsername("root"); ds.setPassword("root"); ds.setDriverClassName("com.mysql.jdbc.Driver"); //3.设置连接池参数 ds.setInitialSize(5);//初始连接数 ds.setMaxActive(8);//最大连接数 ds.setMaxWait(3000);//超过最大连接数时,最大等待时间 ds.setMaxIdle(3000);//最大空闲时间 //4.获取连接s for(int i=1;i<=9;i++){ Connection conn = ds.getConnection(); System.out.println(conn.hashCode()); //最大连接数为8,释放一个就可以最多创建9个连接池 if(i==5){ //释放连接(不是真正的关闭连接对象,而是把连接对象放回连接池) conn.close(); } //可以用生成的连接执行sql语句 //conn.createStatement().execute(sql) } }
方法二:我们也可以通过dbcp配置文件的形式来创建dbcp连接池,先创建dbcp.properties连接池配置文件,如下。
url=jdbc:jdbc:mysql://127.0.0.1:3306/test username=root password=root driverClassName=com.mysql.jdbc.Driver initialSize=5 maxActive=8 maxWait=3000 maxIdle=3000
第二种可以通过如下方法来创建dbcp连接池。
@Test public void test2() throws Exception{ Properties prop = new Properties(); prop.load(DbpcDemo.class.getResourceAsStream("/dbcp.properties")); //1.创建连接池对象 BasicDataSource ds = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop); //2.获取连接 for(int i=1;i<=9;i++){ Connection conn = ds.getConnection(); System.out.println(conn.hashCode()); //最大连接数为8,释放一个就可以最多创建9个连接池 if(i==5){ //释放连接(不是真正的关闭连接对象,而是把连接对象放回连接池) conn.close(); } //可以用生成的连接执行sql语句 //conn.createStatement().execute(sql) } }
以上两个创建dbcp连接池的方法通常是在jdbc+servlet开发中用来操作数据库,如果在ssm或者ssh框架的项目开发中,通常使用xml的形式来创建连接池,然后注入给SqlSessionFactoryBean对象来处理。