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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? statement.java

?? mysql jdbc驅動程序 mysql jdbc驅動程序 mysql jdbc驅動程序 mysql jdbc驅動程序
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
				}			} finally {				if (timeoutTask != null) {					timeoutTask.cancel();				}								if (oldCatalog != null) {					locallyScopedConn.setCatalog(oldCatalog);				}			}		}		this.results = rs;		rs.setFirstCharOfQuery(firstStatementChar);		this.updateCount = rs.getUpdateCount();		int truncatedUpdateCount = 0;		if (this.updateCount > Integer.MAX_VALUE) {			truncatedUpdateCount = Integer.MAX_VALUE;		} else {			truncatedUpdateCount = (int) this.updateCount;		}		this.lastInsertId = rs.getUpdateID();		return truncatedUpdateCount;	}	/**	 * @see Statement#executeUpdate(String, int)	 */	public int executeUpdate(String sql, int returnGeneratedKeys)			throws SQLException {		if (returnGeneratedKeys == java.sql.Statement.RETURN_GENERATED_KEYS) {			checkClosed();			Connection locallyScopedConn = this.connection;						synchronized (locallyScopedConn.getMutex()) {				// If this is a 'REPLACE' query, we need to be able to parse				// the 'info' message returned from the server to determine				// the actual number of keys generated.				boolean readInfoMsgState = locallyScopedConn						.isReadInfoMsgEnabled();				locallyScopedConn.setReadInfoMsgEnabled(true);				try {					return executeUpdate(sql);				} finally {					locallyScopedConn.setReadInfoMsgEnabled(readInfoMsgState);				}			}		}		return executeUpdate(sql);	}	/**	 * @see Statement#executeUpdate(String, int[])	 */	public int executeUpdate(String sql, int[] generatedKeyIndices)			throws SQLException {		if ((generatedKeyIndices != null) && (generatedKeyIndices.length > 0)) {			checkClosed();						Connection locallyScopedConn = this.connection;						synchronized (locallyScopedConn.getMutex()) {				// If this is a 'REPLACE' query, we need to be able to parse				// the 'info' message returned from the server to determine				// the actual number of keys generated.				boolean readInfoMsgState = locallyScopedConn						.isReadInfoMsgEnabled();				locallyScopedConn.setReadInfoMsgEnabled(true);				try {					return executeUpdate(sql);				} finally {					locallyScopedConn.setReadInfoMsgEnabled(readInfoMsgState);				}			}		}		return executeUpdate(sql);	}	/**	 * @see Statement#executeUpdate(String, String[])	 */	public int executeUpdate(String sql, String[] generatedKeyNames)			throws SQLException {		if ((generatedKeyNames != null) && (generatedKeyNames.length > 0)) {			checkClosed();			Connection locallyScopedConn = this.connection;						synchronized (locallyScopedConn.getMutex()) {				// If this is a 'REPLACE' query, we need to be able to parse				// the 'info' message returned from the server to determine				// the actual number of keys generated.				boolean readInfoMsgState = this.connection						.isReadInfoMsgEnabled();				locallyScopedConn.setReadInfoMsgEnabled(true);				try {					return executeUpdate(sql);				} finally {					locallyScopedConn.setReadInfoMsgEnabled(readInfoMsgState);				}			}		}		return executeUpdate(sql);	}	/**	 * Optimization to only use one calendar per-session, or calculate it for	 * each call, depending on user configuration	 */	protected Calendar getCalendarInstanceForSessionOrNew() {		if (this.connection != null) {			return this.connection.getCalendarInstanceForSessionOrNew();		} else {			// punt, no connection around			return new GregorianCalendar();		}	}	/**	 * JDBC 2.0 Return the Connection that produced the Statement.	 * 	 * @return the Connection that produced the Statement	 * 	 * @throws SQLException	 *             if an error occurs	 */	public java.sql.Connection getConnection() throws SQLException {		return this.connection;	}	/**	 * JDBC 2.0 Determine the fetch direction.	 * 	 * @return the default fetch direction	 * 	 * @exception SQLException	 *                if a database-access error occurs	 */	public int getFetchDirection() throws SQLException {		return java.sql.ResultSet.FETCH_FORWARD;	}	/**	 * JDBC 2.0 Determine the default fetch size.	 * 	 * @return the number of rows to fetch at a time	 * 	 * @throws SQLException	 *             if an error occurs	 */	public int getFetchSize() throws SQLException {		return this.fetchSize;	}	/**	 * DOCUMENT ME!	 * 	 * @return DOCUMENT ME!	 * 	 * @throws SQLException	 *             DOCUMENT ME!	 */	public java.sql.ResultSet getGeneratedKeys()			throws SQLException {		if (this.batchedGeneratedKeys == null) {			return getGeneratedKeysInternal();		}		Field[] fields = new Field[1];		fields[0] = new Field("", "GENERATED_KEY", Types.BIGINT, 17); //$NON-NLS-1$ //$NON-NLS-2$		fields[0].setConnection(this.connection);		return new com.mysql.jdbc.ResultSet(this.currentCatalog, fields,				new RowDataStatic(this.batchedGeneratedKeys), this.connection,				this);	}		/*	 * Needed because there's no concept of super.super to get to this	 * implementation from ServerPreparedStatement when dealing with batched	 * updates.	 */	protected java.sql.ResultSet getGeneratedKeysInternal()			throws SQLException {		Field[] fields = new Field[1];		fields[0] = new Field("", "GENERATED_KEY", Types.BIGINT, 17); //$NON-NLS-1$ //$NON-NLS-2$		fields[0].setConnection(this.connection);		ArrayList rowSet = new ArrayList();		long beginAt = getLastInsertID();		int numKeys = getUpdateCount();		if (this.results != null) {			String serverInfo = this.results.getServerInfo();				// 			// Only parse server info messages for 'REPLACE'			// queries			//			if ((numKeys > 0) && (this.results.getFirstCharOfQuery() == 'R')					&& (serverInfo != null) && (serverInfo.length() > 0)) {				numKeys = getRecordCountFromInfo(serverInfo);			}				if ((beginAt > 0) && (numKeys > 0)) {				for (int i = 0; i < numKeys; i++) {					byte[][] row = new byte[1][];					row[0] = Long.toString(beginAt++).getBytes();					rowSet.add(row);				}			}		}		return new com.mysql.jdbc.ResultSet(this.currentCatalog, fields,				new RowDataStatic(rowSet), this.connection, this);	}	/**	 * Returns the id used when profiling	 * 	 * @return the id used when profiling.	 */	protected int getId() {		return this.statementId;	}	/**	 * getLastInsertID returns the value of the auto_incremented key after an	 * executeQuery() or excute() call.	 * 	 * <p>	 * This gets around the un-threadsafe behavior of "select LAST_INSERT_ID()"	 * which is tied to the Connection that created this Statement, and	 * therefore could have had many INSERTS performed before one gets a chance	 * to call "select LAST_INSERT_ID()".	 * </p>	 * 	 * @return the last update ID.	 */	public long getLastInsertID() {		return this.lastInsertId;	}	/**	 * getLongUpdateCount returns the current result as an update count, if the	 * result is a ResultSet or there are no more results, -1 is returned. It	 * should only be called once per result.	 * 	 * <p>	 * This method returns longs as MySQL server versions newer than 3.22.4	 * return 64-bit values for update counts	 * </p>	 * 	 * @return the current update count.	 */	public long getLongUpdateCount() {		if (this.results == null) {			return -1;		}		if (this.results.reallyResult()) {			return -1;		}		return this.updateCount;	}	/**	 * The maxFieldSize limit (in bytes) is the maximum amount of data returned	 * for any column value; it only applies to BINARY, VARBINARY,	 * LONGVARBINARY, CHAR, VARCHAR and LONGVARCHAR columns. If the limit is	 * exceeded, the excess data is silently discarded.	 * 	 * @return the current max column size limit; zero means unlimited	 * 	 * @exception SQLException	 *                if a database access error occurs	 */	public int getMaxFieldSize() throws SQLException {		return this.maxFieldSize;	}	/**	 * The maxRows limit is set to limit the number of rows that any ResultSet	 * can contain. If the limit is exceeded, the excess rows are silently	 * dropped.	 * 	 * @return the current maximum row limit; zero means unlimited	 * 	 * @exception SQLException	 *                if a database access error occurs	 */	public int getMaxRows() throws SQLException {		if (this.maxRows <= 0) {			return 0;		}		return this.maxRows;	}	/**	 * getMoreResults moves to a Statement's next result. If it returns true,	 * this result is a ResulSet.	 * 	 * @return true if the next ResultSet is valid	 * 	 * @exception SQLException	 *                if a database access error occurs	 */	public boolean getMoreResults() throws SQLException {		return getMoreResults(CLOSE_CURRENT_RESULT);	}	/**	 * @see Statement#getMoreResults(int)	 */	public boolean getMoreResults(int current) throws SQLException {		if (this.results == null) {			return false;		}		ResultSet nextResultSet = this.results.getNextResultSet();		switch (current) {		case java.sql.Statement.CLOSE_CURRENT_RESULT:			if (this.results != null) {				this.results.close();				this.results.clearNextResult();			}			break;		case java.sql.Statement.CLOSE_ALL_RESULTS:			if (this.results != null) {				this.results.close();				this.results.clearNextResult();			}			closeAllOpenResults();			break;		case java.sql.Statement.KEEP_CURRENT_RESULT:			if (!this.connection.getDontTrackOpenResources()) {				this.openResults.add(this.results);			}			this.results.clearNextResult(); // nobody besides us should			// ever need this value...			break;		default:			throw SQLError.createSQLException(Messages					.getString("Statement.19"), //$NON-NLS-1$					SQLError.SQL_STATE_ILLEGAL_ARGUMENT); //$NON-NLS-1$		}		this.results = nextResultSet;		if (this.results == null) {			this.updateCount = -1;			this.lastInsertId = -1;		} else if (this.results.reallyResult()) {			this.updateCount = -1;			this.lastInsertId = -1;		} else {			this.updateCount = this.results.getUpdateCount();			this.lastInsertId = this.results.getUpdateID();		}		return ((this.results != null) && this.results.reallyResult()) ? true				: false;	}	/**	 * The queryTimeout limit is the number of seconds the driver will wait for	 * a Statement to execute. If the limit is exceeded, a SQLException is	 * thrown.	 * 	 * @return the current query timeout limit in seconds; 0 = unlimited	 * 	 * @exception SQLException	 *                if a database access error occurs	 */	public int getQueryTimeout() throws SQLException {		return this.timeoutInMillis / 1000;	}	/**	 * Parses actual record count from 'info' message	 * 	 * @param serverInfo	 *            DOCUMENT ME!	 * 	 * @return DOCUMENT ME!	 */	private int getRecordCountFromInfo(String serverInfo) {		StringBuffer recordsBuf = new StringBuffer();		int recordsCount = 0;		int duplicatesCount = 0;		char c = (char) 0;		int length = serverInfo.length();		int i = 0;		for (; i < length; i++) {			c = serverInfo.charAt(i);			if (Character.isDigit(c)) {				break;			}		}		recordsBuf.append(c);		i++;		for (; i < length; i++) {			c = serverInfo.charAt(i);			if (!Character.isDigit(c)) {				break;			}			recordsBuf.append(c);		}		recordsCount = Integer.parseInt(recordsBuf.toString());		StringBuffer duplicatesBuf = new StringBuffer();		for (; i < length; i++) {			c = serverInfo.charAt(i);			if (Character.isDigit(c)) {				break;			}		}		duplicatesBuf.append(c);		i++;		for (; i < length; i++) {			c = serverInfo.charAt(i);			if (!Character.isDigit(c)) {				break;			}			duplicatesBuf.append(c);		}		duplicatesCount = Integer.parseInt(duplicatesBuf.toString());		return recordsCount - duplicatesCount;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情综合五月色丁香小说| 色天天综合色天天久久| 亚洲国产精品久久艾草纯爱| 日韩黄色小视频| av电影在线观看不卡| 欧美一区二区三区播放老司机| 欧美视频在线不卡| 久久久久久久综合色一本| 一区二区三区日本| 韩日av一区二区| 欧美性极品少妇| 亚洲欧美一区二区不卡| 国产一区二区三区美女| 精品一区二区在线免费观看| 精品91自产拍在线观看一区| 国产精品婷婷午夜在线观看| 日本成人在线看| 欧美日韩国产免费| 一区二区在线观看不卡| 成人动漫av在线| 精品国产乱码久久久久久闺蜜| 3d成人动漫网站| 亚洲欧美日韩精品久久久久| 日韩av午夜在线观看| av电影天堂一区二区在线观看| 91久久免费观看| 亚洲欧美自拍偷拍色图| 国产成人精品一区二区三区四区 | 色综合久久综合中文综合网| 91女神在线视频| 久久精品一二三| 国产成人在线看| 日本久久精品电影| 亚洲天堂网中文字| 色综合网站在线| 国产精品国产a级| 波多野结衣在线一区| 亚洲欧洲在线观看av| 成人一区在线观看| 中文字幕一区二区三区av| 成人av先锋影音| 亚洲精品一二三| 精品视频免费看| 久久99精品国产麻豆不卡| 精品盗摄一区二区三区| 国产伦精一区二区三区| 欧美激情一区二区三区四区| 成人免费av资源| 亚洲嫩草精品久久| 欧美日韩亚洲高清一区二区| 午夜精品福利久久久| 欧美电影免费观看完整版| 国产乱码精品一品二品| 欧美私人免费视频| 国产亚洲精品7777| 99久久伊人精品| 亚洲国产成人tv| 欧美xxx久久| 成人深夜福利app| 亚洲国产欧美在线| 欧美一区二区三区喷汁尤物| 国产福利精品一区二区| 亚洲欧美一区二区三区孕妇| 欧美精品第一页| 国产精品一级在线| 一区二区三区中文字幕电影| 日韩欧美一区二区三区在线| 久久国产剧场电影| 久久综合色天天久久综合图片| 一区二区三区欧美视频| 不卡的av在线播放| 亚洲1区2区3区4区| 久久精品欧美日韩| 欧美亚洲高清一区| 国产乱码精品一区二区三| 一区二区视频在线看| 日韩免费一区二区三区在线播放| 丝袜美腿亚洲色图| 精品视频在线视频| 国产精品911| 偷拍自拍另类欧美| 国产精品国产三级国产a| 69久久夜色精品国产69蝌蚪网| 亚洲一区在线视频观看| 精品日产卡一卡二卡麻豆| heyzo一本久久综合| 亚洲欧洲无码一区二区三区| 欧美人动与zoxxxx乱| 丝袜诱惑亚洲看片| 欧美精品日日鲁夜夜添| 91农村精品一区二区在线| 久久成人免费网站| 亚洲国产综合视频在线观看| 国产精品乱码妇女bbbb| 精品剧情在线观看| 欧美精品一级二级三级| 一本色道亚洲精品aⅴ| 国产成人免费视| 蜜臀av亚洲一区中文字幕| 精品剧情v国产在线观看在线| 国产精品亚洲综合一区在线观看| 久久久.com| 日韩精品影音先锋| 欧美日韩国产首页| 色悠久久久久综合欧美99| 高清成人免费视频| 国产精品蜜臀在线观看| 久久只精品国产| 一本到不卡免费一区二区| 韩国视频一区二区| 免费一区二区视频| 亚洲aaa精品| 亚洲第一在线综合网站| 亚洲欧美色图小说| 3d动漫精品啪啪一区二区竹菊| 韩日欧美一区二区三区| 蜜桃久久久久久| 青娱乐精品在线视频| 蜜桃视频在线观看一区二区| 日韩国产欧美在线视频| 婷婷一区二区三区| 国产午夜精品一区二区三区视频| 欧美亚洲国产bt| 欧美视频在线播放| 欧美一区二区三区视频免费播放 | 日韩午夜电影在线观看| 欧美亚洲综合久久| 欧美特级限制片免费在线观看| 精品一二三四区| 一区二区三区鲁丝不卡| 亚洲国产视频一区二区| 日韩高清不卡在线| 美洲天堂一区二卡三卡四卡视频 | 福利一区二区在线| 国产成人在线电影| 91年精品国产| 7777精品伊人久久久大香线蕉| www.久久久久久久久| 色94色欧美sute亚洲线路一久| 黄色成人免费在线| 国产精品一区二区免费不卡| 丝袜美腿一区二区三区| 国内精品久久久久影院色| 成人激情综合网站| 在线观看成人小视频| 91精品国产aⅴ一区二区| 久久久九九九九| 亚洲专区一二三| 久久精品99久久久| 97久久久精品综合88久久| 国产高清成人在线| 久久电影网站中文字幕| 日韩精品久久久久久| 国产精品亚洲成人| 在线一区二区三区做爰视频网站| 国产成人在线色| 欧美三级电影精品| 欧美tickling网站挠脚心| 亚洲天天做日日做天天谢日日欢| 欧美tk—视频vk| 日韩一区二区在线播放| 一级精品视频在线观看宜春院| 国产精品天天看| 午夜影院在线观看欧美| 国产一区二区三区久久悠悠色av| 精品亚洲免费视频| 欧美性大战xxxxx久久久| 欧美丝袜丝nylons| 国产香蕉久久精品综合网| 久久综合色综合88| 国产亚洲午夜高清国产拍精品| 精品国产乱码久久久久久夜甘婷婷 | 91麻豆免费视频| 精品国产三级电影在线观看| 亚洲精品福利视频网站| 亚洲一区二区av电影| 国产精品夜夜爽| 日韩精品一区二区三区四区视频| 欧美成人精品3d动漫h| 日韩午夜电影av| 亚洲国产成人高清精品| av资源站一区| 国产欧美一区视频| 综合激情网...| 成人免费毛片app| 国产精品99精品久久免费| 日韩一卡二卡三卡| 午夜精品久久久久久久99樱桃| 亚洲国产精品久久久久秋霞影院| 免费欧美高清视频| 欧美日韩亚洲综合在线| 亚洲摸摸操操av| 91香蕉国产在线观看软件| 中文无字幕一区二区三区| 亚洲欧美经典视频| caoporn国产一区二区| 国产精品私人影院| 国产成人无遮挡在线视频| 2017欧美狠狠色| 精品一区二区三区在线播放|