1. 程式人生 > 程式設計 >Java dbcp連線池基本使用方法詳解

Java 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();
    }
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。