大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 資源
Tomcat JDBC 數(shù)據(jù)源
Tomcat 類加載機(jī)制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默認(rèn) Servlet
Tomcat 集群
Tomcat 連接器
Tomcat監(jiān)控與管理
Tomcat 日志機(jī)制
Tomcat 基于 APR 的原生庫
Tomcat 虛擬主機(jī)
Tomcat 高級 IO 機(jī)制
Tomcat 附加組件
Tomcat 安全性注意事項
Tomcat Windows 服務(wù)
Tomcat Windows 認(rèn)證
Tomcat 的 JDBC 連接池
Tomcat WebSocket 支持
Tomcat 重寫機(jī)制

JDBC連接池代碼范例

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

簡單的 Java

下面這個簡單的范例展示了如何創(chuàng)建并使用數(shù)據(jù)源:

 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 連接池支持異步連接獲取,無需為池庫添加任何額外線程。這是通過在數(shù)據(jù)源上添加一個方法 Future getConnectionAsync() 來實現(xiàn)的。為了使用異步獲取,必須滿足兩個條件:

  1. 必須把 failQueue 屬性設(shè)為 true。
  2. 必須把數(shù)據(jù)源轉(zhuǎn)換為 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");

 

全部教程
主站蜘蛛池模板: 国产精品一区在线播放 | 久久精品影院永久网址 | 国产成人高清视频免费播放 | 天天干天天天天 | 欧美精品国产一区二区三区 | 日本一级毛片片免费观看 | 久久成年人 | 久久精品最新免费国产成人 | 中国一级毛片在线观看 | 欧美5o老妇性xxx | 亚洲国产精品人久久 | 老潮湿影院免费体验区 | 久久狠色噜噜狠狠狠狠97 | 午夜一级毛片免费视频 | 亚洲综合区 | 五月天激情婷婷 | 国产欧美精品一区二区三区四区 | 狠狠色噜噜狠狠狠狠奇米777 | 尤物免费视频 | 99久久免费费视频在线观看 | 国内视频自拍在线视频 | 欧美亚洲另类久久综合 | 四虎永久免费地址在线观看 | 五月婷婷狠狠干 | 99久久精品自在自看国产 | 中文精品99久久国产 | 国产欧美国产精品第二区 | 午夜久久久久久 | 国产精品揄拍一区二区久久 | 中文字幕在线高清 | 免费看欧美理论片在线 | 久九色| 性生活视频网 | 成人深夜视频 | 中文字幕在线观看亚洲 | 在线看一区 | www夜夜操| 欧美激情伦妇在线观看 | 亚洲精品乱码久久久久久中文字幕 | 久久99久久成人免费播放 | 亚洲国产精品久久久天堂 |