• <menu id="eeoky"><tt id="eeoky"></tt></menu>
  • <nav id="eeoky"></nav>
  • Tomca教程
    Tomcat Manager
    Tomcat Realm 配置
    Tomcat 安全管理
    Tomcat JNDI 資源
    Tomcat JDBC 數據源
    Tomcat 類加載機制
    Tomcat JSPs
    Tomcat SSL/TLS配置
    Tomcat SSI
    Tomcat CGI
    Tomcat 代理支持
    Tomcat MBean 描述符
    Tomcat 默認 Servlet
    Tomcat 集群
    Tomcat 連接器
    Tomcat監控與管理
    Tomcat 日志機制
    Tomcat 基于 APR 的原生庫
    Tomcat 虛擬主機
    Tomcat 高級 IO 機制
    Tomcat 附加組件
    Tomcat 安全性注意事項
    Tomcat Windows 服務
    Tomcat Windows 認證
    Tomcat 的 JDBC 連接池
    Tomcat WebSocket 支持
    Tomcat 重寫機制

    JDBC連接池代碼范例

    其他 JDBC 用途的 Tomcat 配置范例可以參考 相關的 Tomcat 文檔。

    簡單的 Java

    下面這個簡單的范例展示了如何創建并使用數據源:

     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) {}
              }
          }
    
      }

    作為資源使用

    下例展示了如何為 JNDI 查找配置資源。  

    異步連接獲取

    Tomcat JDBC 連接池支持異步連接獲取,無需為池庫添加任何額外線程。這是通過在數據源上添加一個方法 Future getConnectionAsync() 來實現的。為了使用異步獲取,必須滿足兩個條件:

    1. 必須把 failQueue 屬性設為 true。
    2. 必須把數據源轉換為 org.apache.tomcat.jdbc.pool.DataSource。

    下例就使用了異步獲取功能:

     Connection con = null;
      try {
        Future future = datasource.getConnectionAsync();
        while (!future.isDone()) {
          System.out.println("Connection is not yet available. Do some background work");
          try {
            Thread.sleep(100); //simulate work
          }catch (InterruptedException x) {
            Thread.currentThread().interrupt();
          }
        }
        con = future.get(); //should return instantly
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select * from user");

     

    全部教程
    疯狂婬荡乱婬A片中文,特级西西人体444WWw高清大胆,国产性XXXX18免费观看视频,中文字幕乱伦,free性满足HD国产精品,牛人女厕偷拍1区2区