如何创建JDBC连接池?

时间:2017-02-21 05:08:37

标签: java jdbc

如何使用可配置参数创建JDBC连接池,客户端应该能够更改默认的连接数???任何人都可以用示例代码解释这个

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您也可以使用Oracle数据源,Ojdbc6.jar支持。概念保持不变,但会根据您选择的库而有所不同。

另外,作为一般做法,您应该将所有setter参数放在属性文件中。