zoukankan      html  css  js  c++  java
  • 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 初始化连接
  • 相关阅读:
    第一阶段冲刺(第六天)
    第一阶段冲刺(第五天)
    第一阶段冲刺(第四天)
    第一阶段冲刺(第三天)
    第一阶段冲刺(第二天)
    个人学习进度(第十一周)
    第一阶段冲刺(第一天)
    个人学习进度(第十周)
    个人学习进度(第九周)
    php面向对象说明
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15046804.html
Copyright © 2011-2022 走看看