dbcp连接池的基本使用

dbcp连接池的基本使用

1、依赖api的使用

  • 导入jar包

 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
   <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-dbcp2</artifactId>
     <version>2.7.0</version>
   </dependency>
  • 导入dbcp.properties配置文件

  • 获取连接

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
           ServletException, IOException {
       Properties properties=new Properties();
       //获取dbcp配置文件对应输入流
       InputStream inputStream=DbcpServlet.class.getClassLoader().getResourceAsStream("dbcp.properties");
       //加载dbcp配置文件
       properties.load(inputStream);

       BasicDataSource basicDataSource=null;
       try {
           //数据源对象
           basicDataSource=BasicDataSourceFactory.createDataSource(properties);
           //获取数据库连接
           Connection connection=basicDataSource.getConnection();
           System.out.println(connection);
      } catch (Exception e) {
           e.printStackTrace();
      }

  }

2、依赖tomcat容器的使用

利用jndi机制实现,jndi(命名及目录查找接口),将数据源连接池的配置信息在容器(Tomcat)实现配置

具体如何实现配置

  • 在tomcat的context.xml文件加入数据源配置

    <Resource 
            <!--数据源名字-->
            name="jdbc/news"
           <!--验证数据源的容器类型-->
      auth="Container"
      type="javax.sql.DataSource"
    <!--最大连接数据库连接对象的数量100-->
    maxActive="100"
    <!--最大空闲数是30-->
    maxIdle="30"
    <!--最大等待时间-->
    maxWait="10000"
    <!--数据库用户名-->
    username="root"
    <!--数据库密码-->
    password="123456"
    <!--数据库驱动-->
    driverClassName="com.mysql.cj.jdbc.Driver"
    <!--数据库url-->
    url="jdbc:mysql://localhost:3306/yl?characterEncoding=utf8&amp;serverTimezone=GMT%2B8"/>
  • 获取连接

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
           try {
               //获取上下文对象
               Context ctx = new InitialContext();
               //通过jndi命名服务,找到数据源配置
               DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news");
               //获取数据库连接
               Connection connection = ds.getConnection();
               
               if (!connection.isClosed()) {
                   System.out.println("连接成功");
              }
          } catch (NamingException e) {
               e.printStackTrace();
          } catch (SQLException e) {
               e.printStackTrace();
          }
      }
  •  

记得快乐
原文地址:https://www.cnblogs.com/Y-wee/p/13679553.html