2017-02-21 120 views
-1

如何用可配置的參數創建JDBC連接池,客戶端應該能夠更改默認的連接數量?任何人都可以用示例代碼來解釋此問題如何創建JDBC連接池?

+1

請閱讀我們的[問]頁面提示如何改善此問題 – ochi

+1

最受歡迎的連接池應提供示例代碼和配置選項 – slipperyseal

+0

http://stackoverflow.com/questions/2835090/how-to-establish- a-connection-pool-in-jdbc –

回答

1

我希望這會對您有所幫助。

import java.sql.Connection; 
    import java.sql.ResultSet; 
    import java.sql.Statement; 
    import org.apache.tomcat.jdbc.pool.DataSource; 
    import org.apache.tomcat.jdbc.pool.PoolProperties; 


    public class SimplePOJOExample { 

    public static void main(String[] args) throws Exception { 
     PoolProperties p = new PoolProperties(); 
     p.setUrl("jdbc:mysql://localhost:3306/mysql"); 
     p.setDriverClassName("com.mysql.jdbc.Driver"); 
     p.setUsername("root"); 
     p.setPassword("password"); 
     p.setJmxEnabled(true); 
     p.setTestWhileIdle(false); 
     p.setTestOnBorrow(true); 
     p.setValidationQuery("SELECT 1"); 
     p.setTestOnReturn(false); 
     p.setValidationInterval(30000); 
     p.setTimeBetweenEvictionRunsMillis(30000); 
     p.setMaxActive(100); 
     p.setInitialSize(10); 
     p.setMaxWait(10000); 
     p.setRemoveAbandonedTimeout(60); 
     p.setMinEvictableIdleTimeMillis(30000); 
     p.setMinIdle(10); 
     p.setLogAbandoned(true); 
     p.setRemoveAbandoned(true); 
     p.setJdbcInterceptors(
     "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"+ 
     "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"); 
     DataSource datasource = new DataSource(); 
     datasource.setPoolProperties(p); 

     Connection con = null; 
     try { 
     con = datasource.getConnection(); 
     Statement st = con.createStatement(); 
     ResultSet rs = st.executeQuery("select * from user"); 
     int cnt = 1; 
     while (rs.next()) { 
      System.out.println((cnt++)+". Host:" +rs.getString("Host")+ 
       " User:"+rs.getString("User")+" Password:"+rs.getString("Password")); 
     } 
     rs.close(); 
     st.close(); 
     } finally { 
     if (con!=null) try {con.close();}catch (Exception ignore) {} 
     } 
    } 

} 

來源:https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

0

您可以使用OracleDataSource爲好,支持與Ojdbc6.jar。這個概念保持不變,但會根據您選擇的庫而有所不同。

另外,作爲一種慣例,您應該將所有setter參數放置在屬性文件中。