JDBC连接池(三)DBCP连接池
在前面的随笔中提到 了 1.JDBC自定义连接池 2. C3P0连接池
今天将介绍DBCP连接池
第一步要导入jar包 (注意:mysql和mysql 驱动的版本问题 ,驱动过低会造成下图异常)
创建db.properties 配置文件
DBCPUtils.java 文件
1 package com.study.jdbc.Utils; 2 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.SQLException; 6 import java.util.Properties; 7 8 import javax.sql.DataSource; 9 10 import org.apache.commons.dbcp.BasicDataSourceFactory; 11 12 public class DBCPUtils { 13 14 private static DataSource dataSource; 15 static{ 16 17 try { 18 InputStream is=DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties"); 19 Properties props=new Properties(); 20 props.load(is); 21 //创建数据源 22 System.out.println(props.getProperty("driver")); 23 dataSource=BasicDataSourceFactory.createDataSource(props); 24 System.out.println(dataSource); 25 } catch (Exception e) { 26 throw new RuntimeException(e); 27 } 28 29 } 30 public static DataSource getDataSource(){ 31 return dataSource; 32 } 33 public static Connection getConnection(){ 34 35 try { 36 return dataSource.getConnection(); 37 } catch (SQLException e) { 38 throw new RuntimeException(e); 39 } 40 } 41 }
TestDBCP.java
package cn.itheima.jdbc.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.junit.Test; import cn.itheima.jdbc.utils.DBCPUtils; public class TestDBCP { @Test public void test1(){ Connection conn=null; PreparedStatement pstm=null; ResultSet rs=null; try { conn=DBCPUtils.getConnection(); String sql="select * from user"; pstm=conn.prepareStatement(sql); rs=pstm.executeQuery(); while(rs.next()){ System.out.print(" userId ="+rs.getObject("userId")+" "); System.out.println(" userName ="+rs.getObject("userName")); } } catch (Exception e) { throw new RuntimeException(e); } } public static void main(String[] args) { Connection conn=null; PreparedStatement pstm=null; ResultSet rs=null; try { conn=DBCPUtils.getConnection(); String sql="select * from user"; pstm=conn.prepareStatement(sql); rs=pstm.executeQuery(); while(rs.next()){ System.out.print(" userId ="+rs.getObject("userId")+" "); System.out.println(" userName ="+rs.getObject("userName")); } } catch (Exception e) { throw new RuntimeException(e); } } }