DBCP是tomcat内置的连接池。
使用方法:

  • 导入jar包
    1.png
  • 书写配置文件

    • 配置文件名称:*.properties(文件名任意,但是扩展名固定)。
    • 位置任意,一般放在src目录下。
    • 不能写中文。
    • 内容(其他配置也写在这里面):

       driver=com.mysql.jdbc.Driver
       url=jdbc:mysql://127.0.0.1:3306/ning
       username=root
       password=root
  • 工具类:

    package com.sunxiaoning.jdbc.utils;
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    
    import javax.sql.DataSource;
    
    import org.apache.commons.dbcp.BasicDataSourceFactory;
    
    /**
     * DBCP工具类
     * @author sunxiaoning
     *
     */
    public class DBCPUtils {
      private static DataSource dataSource;
      static {
          
          try {
              //1.加载找properties文件输入流
              InputStream is = DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");
              //2.加载输入流
              Properties props = new Properties();
              props.load(is);
              //3.创建数据源
              dataSource = BasicDataSourceFactory.createDataSource(props);
              
          } catch (Exception e) {
              throw new RuntimeException();
          }
       }
      
      /**
       * 获取数据源(连接池)
       * @return
       */
      public static DataSource getDataSource() {
          return dataSource;
      }
      
      /**
       * 获得连接
       * @return
       */
      public static Connection getConnection() {
          try {
              return dataSource.getConnection();
          } catch (SQLException e) {
              throw new RuntimeException();
          }
      }
    }
    
  • 测试类

    package com.sunxiaoning.jdbc.test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import org.junit.jupiter.api.Test;
    
    import com.sunxiaoning.jdbc.utils.DBCPUtils;
    
    public class TestDBCP {
      
      @Test
      public void testUpdateByid() {
          Connection conn = null;
          PreparedStatement pstmt = null;
          try {
              conn = DBCPUtils.getConnection();
              String sql = "update users set upwd =? where uid =?";
              pstmt = conn.prepareStatement(sql);
              pstmt.setString(1, "222");
              pstmt.setInt(2, 1);
              int rows = pstmt.executeUpdate();
              if(rows>0) {
                  System.out.println("更新成功");
              }else {
                  System.out.println("更新失败");
              }
          } catch (Exception e) {
              throw new RuntimeException();
          }finally {
              if (conn!=null) {
                  try {
                      conn.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              
              if(pstmt!=null) {
                  try {
                      conn.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              
          }
          
      }
    }
    
Last modification:February 15, 2019
If you think my article is useful to you, please feel free to appreciate