JDBC: DBCP连接池
DBCP连接池
DBCP也是一个开源的连接池,是Apache成员之一,在企业开发中也比较常见,tomcat内置的连接池。
1 创建项目 导入 jar包
1)将这两个 jar包添加到 myJar文件夹中 (jar包在资料里的软件文件夹中)
2) 添加myJar库 到项目的依赖中
2 编写工具类
连接数据库表的工具类, 采用DBCP连接池的方式来完成
Java中提供了一个连接池的规则接口 : DataSource , 它是java中提供的连接池
在DBCP包中提供了DataSource接口的实现类,我们要用的具体的连接池 BasicDataSource 类
代码示例
public class DBCPUtils { //1.定义常量 保存数据库连接的相关信息 public static final String DRIVERNAME = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/db5?characterEncoding=UTF-8"; public static final String USERNAME = "root"; public static final String PASSWORD = "123456"; //2.创建连接池对象 (有DBCP提供的实现类) public static BasicDataSource dataSource = new BasicDataSource(); //3.使用静态代码块进行配置 static{ dataSource.setDriverClassName(DRIVERNAME); dataSource.setUrl(URL); dataSource.setUsername(USERNAME); dataSource.setPassword(PASSWORD); } //4.获取连接的方法 public static Connection getConnection() throws SQLException { //从连接池中获取连接 Connection connection = dataSource.getConnection(); return connection; } //5.释放资源方法 public static void close(Connection con, Statement statement){ if(con != null && statement != null){ try { statement.close(); //归还连接 con.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Connection con, Statement statement, ResultSet resultSet){ if(con != null && statement != null && resultSet != null){ try { resultSet.close(); statement.close(); //归还连接 con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3 测试工具类
需求: 查询所有员工的姓名
public class TestDBCP { /* * 测试DBCP连接池 * */ public static void main(String[] args) throws SQLException { //1.从DBCP连接池中拿到连接 Connection con = DBCPUtils.getConnection(); //2.获取Statement对象 Statement statement = con.createStatement(); //3.查询所有员工的姓名 String sql = "select ename from employee"; ResultSet resultSet = statement.executeQuery(sql); //4.处理结果集 while(resultSet.next()){ String ename = resultSet.getString("ename"); System.out.println("员工姓名: " + ename); } //5.释放资源 DBCPUtils.close(con,statement,resultSet); } }
4 常见配置项
属性 | 描述 |
driverClassName | 数据库驱动名称 |
url | 数据库地址 |
username | 用户名 |
password | 密码 |
maxActive | 最大连接数量 |
maxIdle | 最大空闲连接 |
minIdle | 最小空闲连接 |
initialSize | 初始化连接 |