亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spidersqlworkload.java

?? 網(wǎng)絡(luò)機(jī)器人
?? JAVA
字號(hào):
package com.heaton.bot;import java.util.*;import java.sql.*;/** * This class uses a JDBC database * to store a spider workload. * * @author Jeff Heaton * @version 1.0 */public class SpiderSQLWorkload implements IWorkloadStorable {  /**   * The JDBC connection.   */  Connection _connection;  /**   * A prepared SQL statement to clear the workload.   */  PreparedStatement _prepClear;  /**   * A prepared SQL statement to assign a workload.   */  PreparedStatement _prepAssign;  /**   * A prepared SQL statement to get the status of   * a URL.   */  PreparedStatement _prepGetStatus;  /**   * A prepared SQL statement to set the status.   */  PreparedStatement _prepSetStatus1;  /**   * A prepared SQL statement to set the status.   */  PreparedStatement _prepSetStatus2;  /**   * A prepared SQL statement to set the status.   */  PreparedStatement _prepSetStatus3;  /**   * Create a new SQL workload store and   * connect to a database.   *   * @param driver The JDBC driver to use.   * @param source The driver source name.   * @exception java.sql.SQLException   * @exception java.lang.ClassNotFoundException   */  public SpiderSQLWorkload(String driver, String source)  throws SQLException, ClassNotFoundException  {    Class.forName(driver);    _connection = DriverManager.getConnection(source);    _prepClear = _connection.prepareStatement("DELETE FROM tblWorkload;");    _prepAssign = _connection.prepareStatement("SELECT URL FROM tblWorkload WHERE Status = 'W';");    _prepGetStatus = _connection.prepareStatement("SELECT Status FROM tblWorkload WHERE URL = ?;");    _prepSetStatus1 = _connection.prepareStatement("SELECT count(*) as qty FROM tblWorkload WHERE URL = ?;");    _prepSetStatus2 = _connection.prepareStatement("INSERT INTO tblWorkload(URL,Status) VALUES (?,?);");    _prepSetStatus3 = _connection.prepareStatement("UPDATE tblWorkload SET Status = ? WHERE URL = ?;");  }  /**   * Call this method to request a URL   * to process. This method will return   * a WAITING URL and mark it as RUNNING.   *   * @return The URL that was assigned.   */  synchronized public String assignWorkload()  {    ResultSet rs = null;    try {      rs = _prepAssign.executeQuery();      if ( !rs.next() )        return null;      String url = rs.getString("URL");      setStatus(url,RUNNING);      return url;    } catch ( SQLException e ) {      Log.logException("SQL Error: ",e );    } finally {      try {        if ( rs!=null )          rs.close();      } catch ( Exception e ) {      }    }    return null;  }  /**   * Add a new URL to the workload, and   * assign it a status of WAITING.   *   * @param url The URL to be added.   */  synchronized public void addWorkload(String url)  {    if ( getURLStatus(url)!=UNKNOWN )      return;    setStatus(url,WAITING);  }  /**   * Called to mark this URL as either   * COMPLETE or ERROR.   *   * @param url The URL to complete.   * @param error true - assign this workload a status of ERROR.   * false - assign this workload a status of COMPLETE.   */  synchronized public void completeWorkload(String url,boolean error)  {    if ( error )      setStatus(url,ERROR);    else      setStatus(url,COMPLETE);  }  /**   * This is an internal method used to set the status   * of a given URL. This method will create a record   * for the URL of one does not currently exist.   *   * @param url The URL to set the status for.   * @param status What status to set.   */  protected void setStatus(String url,char status)  {    ResultSet rs = null;    try {      // first see if one exists      _prepSetStatus1.setString(1,url);      rs = _prepSetStatus1.executeQuery();      rs.next();      int count = rs.getInt("qty");      if ( count<1 ) {// Create one        _prepSetStatus2.setString(1,url);        _prepSetStatus2.setString(2,(new Character(status)).toString());        _prepSetStatus2.executeUpdate();      } else {// Update it        _prepSetStatus3.setString(1,(new Character(status)).toString());        _prepSetStatus3.setString(2,url);        _prepSetStatus3.executeUpdate();      }    } catch ( SQLException e ) {      Log.logException("SQL Error: ",e );    } finally {      try {        if ( rs!=null )          rs.close();      } catch ( Exception e ) {      }    }  }  /**   * Get the status of a URL.   *   * @param url Returns either RUNNING, ERROR   * WAITING, or COMPLETE. If the URL   * does not exist in the database,   * the value of UNKNOWN is returned.   * @return Returns either RUNNING,ERROR,   * WAITING,COMPLETE or UNKNOWN.   */  synchronized public char getURLStatus(String url)  {    ResultSet rs = null;    try {      // first see if one exists      _prepGetStatus.setString(1,url);      rs = _prepGetStatus.executeQuery();      if ( !rs.next() )        return UNKNOWN;      return rs.getString("Status").charAt(0);    } catch ( SQLException e ) {      Log.logException("SQL Error: ",e );    } finally {      try {        if ( rs!=null )          rs.close();      } catch ( Exception e ) {      }    }    return UNKNOWN;  }  /**   * Clear the contents of the workload store.   */  synchronized public void clear()  {    try {      _prepClear.executeUpdate();    } catch ( SQLException e ) {      Log.logException("SQL Error: ",e );    }  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日韩av资源站| 亚洲图片欧美色图| 欧美私模裸体表演在线观看| 极品尤物av久久免费看| 亚洲最新在线观看| 国产精品拍天天在线| 制服丝袜在线91| 91看片淫黄大片一级在线观看| 九九视频精品免费| 亚洲五码中文字幕| 亚洲欧美色一区| 国产偷国产偷亚洲高清人白洁 | 日韩中文字幕一区二区三区| 国产日韩欧美高清| 欧美精品一区二| 91精品国产综合久久香蕉麻豆| 色视频成人在线观看免| 国产91露脸合集magnet| 精品一区二区三区在线播放视频 | 日韩欧美国产一区二区在线播放| 色婷婷精品久久二区二区蜜臂av| 国产高清精品久久久久| 国产在线精品一区二区| 免费成人在线影院| 天天操天天色综合| 亚洲国产成人精品视频| 亚洲少妇30p| 亚洲欧美色综合| 成人欧美一区二区三区黑人麻豆| 久久精品亚洲麻豆av一区二区 | 综合久久一区二区三区| 欧美韩国一区二区| 欧美国产日韩精品免费观看| 久久久久久久精| 久久亚洲精品小早川怜子| 26uuu久久综合| 久久这里只有精品6| 亚洲精品一区二区三区影院| 日韩一级视频免费观看在线| 日韩区在线观看| 精品99999| 久久久久成人黄色影片| 久久丝袜美腿综合| 国产精品午夜久久| 亚洲视频免费在线观看| 亚洲精品成人悠悠色影视| 一区二区三区视频在线观看| 亚洲成年人影院| 三级在线观看一区二区| 另类小说视频一区二区| 国产在线麻豆精品观看| 国产另类ts人妖一区二区| 国产高清亚洲一区| 99综合影院在线| 欧美日韩在线免费视频| 91精品国产综合久久久久久久久久| 这里只有精品视频在线观看| 精品国产免费久久| 欧美激情一区二区三区全黄| 亚洲日本一区二区| 天天综合色天天综合色h| 黄页网站大全一区二区| 成人av网址在线| 欧美日韩一卡二卡三卡 | 国产精品入口麻豆九色| 亚洲色图在线看| 秋霞影院一区二区| 国产一区二区三区免费| 91丝袜美女网| 日韩一区二区在线观看视频播放| 26uuu精品一区二区在线观看| 国产精品久久久久桃色tv| 亚洲一区二区三区四区五区中文 | 亚洲欧洲三级电影| 丝瓜av网站精品一区二区| 九色综合国产一区二区三区| 暴力调教一区二区三区| 欧美精品一二三区| 国产精品入口麻豆原神| 亚洲国产精品一区二区www在线| 激情综合色播五月| 色天天综合色天天久久| 欧美r级电影在线观看| 中文字幕在线观看不卡| 日本伊人午夜精品| aaa亚洲精品| 久久综合资源网| 亚洲午夜久久久久久久久电影院| 国产一区二区三区免费看| 欧美日产在线观看| 国产精品美女一区二区| 乱一区二区av| 欧美亚洲一区二区在线| 国产日韩欧美精品电影三级在线| 图片区小说区区亚洲影院| 成人手机在线视频| 日韩精品一区二区三区在线| 一区二区三区欧美在线观看| 国产夫妻精品视频| 91精品国产欧美一区二区| 亚洲伦在线观看| 国产成人在线免费| 日韩欧美专区在线| 亚洲国产色一区| 97se亚洲国产综合自在线观| 2023国产精品视频| 蜜桃视频第一区免费观看| 欧美在线视频不卡| 亚洲精选视频在线| 9i在线看片成人免费| 国产三级精品三级| 精品一区二区三区免费观看| 91精品综合久久久久久| 亚洲黄一区二区三区| 99免费精品视频| 中文字幕 久热精品 视频在线| 久久99热国产| 日韩一级免费一区| 日韩制服丝袜av| 9191久久久久久久久久久| 亚洲一级二级在线| 在线视频一区二区三区| 综合久久久久久| 91免费看视频| 成人免费一区二区三区在线观看| 大胆亚洲人体视频| 国产精品久久综合| 东方欧美亚洲色图在线| 国产人伦精品一区二区| 国产高清无密码一区二区三区| 久久综合资源网| 日韩一级黄色大片| 日韩国产精品久久久久久亚洲| 欧美视频在线观看一区| 亚洲一区视频在线观看视频| 日本二三区不卡| 亚洲成在人线免费| 7878成人国产在线观看| 奇米影视在线99精品| 91精品一区二区三区在线观看| 欧美a一区二区| 精品国产一区二区三区四区四 | 国产精品免费视频观看| jlzzjlzz亚洲女人18| 综合在线观看色| 欧美色综合天天久久综合精品| 亚洲成人在线观看视频| 91精品在线免费观看| 韩国欧美国产1区| 欧美国产日本韩| 91色九色蝌蚪| 天堂一区二区在线| 日韩欧美一级精品久久| 国产精品99久久久久久宅男| 日本一区二区三区高清不卡| 91在线观看一区二区| 亚洲午夜影视影院在线观看| 欧美一级二级在线观看| 国产一区二区导航在线播放| 国产精品久久久久aaaa樱花| 91国产精品成人| 精品中文字幕一区二区| 亚洲国产精品精华液ab| 色综合久久久久久久久久久| 亚洲成av人片一区二区梦乃| 欧美第一区第二区| 成人av集中营| 香蕉加勒比综合久久| 欧美tickling挠脚心丨vk| av在线播放不卡| 天天综合色天天综合色h| 国产亚洲精品bt天堂精选| 在线中文字幕一区| 美脚の诱脚舐め脚责91 | 制服丝袜亚洲播放| 国产精品一区二区久久精品爱涩| 亚洲精品免费电影| 日韩免费视频一区| 91小视频在线免费看| 麻豆精品一区二区综合av| 中文字幕在线视频一区| 91精品国产乱| 一本大道久久精品懂色aⅴ| 日本不卡中文字幕| 国产精品福利一区二区| 欧美一区二区免费| 97国产一区二区| 经典三级视频一区| 亚洲成人av电影| 最新成人av在线| 久久久不卡网国产精品一区| 欧美日韩综合在线| jlzzjlzz欧美大全| 国产麻豆精品在线观看| 视频一区二区三区入口| 亚洲欧美日韩在线播放| 久久久精品综合| 3d成人动漫网站| 精品视频在线视频| 91在线小视频|