大战熟女丰满人妻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");

 

全部教程
主站蜘蛛池模板: 久久中文字幕不卡一二区 | 午夜香蕉视频 | 性欧美视频 | 久久99影院 | 狠狠综合久久综合网站 | 免费看一区二区三区 | 国产欧美一区二区精品性色 | 国产午夜精品视频 | 欧美狠狠| 99热成人精品热久久66 | 久久久久欧美精品网站 | 中文国产成人精品久久一 | 午夜dj影院在线视频观看完整 | 91亚洲精品国产第一区 | 中文字幕在线播放 | 国产97色在线 | 亚洲 | 丝袜三级| 国产自产视频在线观看香蕉 | 久久综合久久鬼色 | 亚洲精品久久久成人 | 亚洲高清一区二区三区 | 在线欧美精品一区二区三区 | 国产精品视频久久久 | 国内精品久久久久鸭 | 一级女性全黄生活片免费看 | 黄色成人在线播放 | 有码在线 | 免费国产一区二区在免费观看 | 男女一级做片a性视频 | 美女精品久久久久久国产潘金莲 | 天天色天天操天天 | 五月激情婷婷网 | 黄色影院视频 | 亚洲精品中文字幕不卡在线 | 国产精品久久久久久久y | 亚洲和欧美毛片久久久久 | 日韩精品另类天天更新影院 | 精产国品一二二区视 | 国内精品视频一区二区八戒 | 在线国产一区二区 | 中文字幕曰韩一区二区不卡 |