1. 程式人生 > 程式設計 >Java使用MySQL實現連線池程式碼例項

Java使用MySQL實現連線池程式碼例項

官方:資料庫連線池(Connection pooling)是程式啟動時建立足夠的資料庫連線,並將這些連線組成一個連線池,由程式動態地對連線池中的連線進行申請,使用,釋放。

理解:建立資料庫連線池是一個很耗時的操作,也容易對資料庫造成安全隱患。所以,在程式初始化的時候,集中建立多個數據庫連線池,並把他們集中管理,供程式使用,可以保證較快的資料庫讀寫速度,還更加的安全可靠。

手動配置連線池:

/**
   * 手動設定連線池
   */
  public void demo1(){

    // 獲得連線:
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try{
      // 建立連線池:
      ComboPooledDataSource dataSource = new ComboPooledDataSource();
      // 設定連線池的引數:
      dataSource.setDriverClass("com.mysql.jdbc.Driver");
      dataSource.setJdbcUrl("jdbc:mysql:///jdbctest");
      dataSource.setUser("root");
      dataSource.setPassword("abc");
      dataSource.setMaxPoolSize(20);
      dataSource.setInitialPoolSize(3);
      
      // 獲得連線:
      conn = dataSource.getConnection();
      // 編寫Sql:
      String sql = "select * from user";
      // 預編譯SQL:
      pstmt = conn.prepareStatement(sql);
      // 設定引數
      // 執行SQL:
      rs = pstmt.executeQuery();
      while(rs.next()){
        System.out.println(rs.getInt("uid")+"  "+rs.getString("username")+"  "+rs.getString("password")+"  "+rs.getString("name"));
      }
    }catch(Exception e){
      e.printStackTrace();
    }finally{
      JDBCUtils.release(rs,pstmt,conn);
    }
  }

使用配置檔案配置連線池:

配置檔案xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

 <default-config>
  <property name="driverClass">com.mysql.jdbc.Driver</property>
  <property name="jdbcUrl">jdbc:mysql:///jdbctest</property>
  <property name="user">root</property>
  <property name="password">abc</property>
  <property name="initialPoolSize">5</property>
  <property name="maxPoolSize">20</property>
 </default-config>
 
</c3p0-config>

程式碼如下:

/**
   * 使用配置檔案的方式
   */
  public void demo2(){
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try{
      /*// 獲得連線:
      ComboPooledDataSource dataSource = new ComboPooledDataSource();*/
      // 獲得連線:
      // conn = dataSource.getConnection();
      conn = JDBCUtils2.getConnection();
      // 編寫Sql:
      String sql = "select * from user";
      // 預編譯SQL:
      pstmt = conn.prepareStatement(sql);
      // 設定引數
      // 執行SQL:
      rs = pstmt.executeQuery();
      while(rs.next()){
        System.out.println(rs.getInt("uid")+"  "+rs.getString("username")+"  "+rs.getString("password")+"  "+rs.getString("name"));
      }
    }catch(Exception e){
      e.printStackTrace();
    }finally{
      JDBCUtils2.release(rs,conn);
    }
  }

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