2017-02-21 134 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参数放置在属性文件中。