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

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

?? jdbc4statementwrapper.java

?? 用于JAVA數(shù)據(jù)庫連接.解壓就可用,方便得很
?? JAVA
字號(hào):
/*
 Copyright (C) 2002-2007 MySQL AB

 This program is free software; you can redistribute it and/or modify
 it under the terms of version 2 of the GNU General Public License as 
 published by the Free Software Foundation.

 There are special exceptions to the terms and conditions of the GPL 
 as it is applied to this software. View the full text of the 
 exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
 software distribution.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA



 */
package com.mysql.jdbc.jdbc2.optional;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.NClob;
import java.sql.SQLClientInfoException;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Savepoint;
import java.sql.Statement;
import java.sql.Struct;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import com.mysql.jdbc.ConnectionImpl;
import com.mysql.jdbc.SQLError;
import com.mysql.jdbc.jdbc2.optional.ConnectionWrapper;
import com.mysql.jdbc.jdbc2.optional.MysqlPooledConnection;

/**
 */
public class JDBC4StatementWrapper extends StatementWrapper {

	public JDBC4StatementWrapper(ConnectionWrapper c, 
			MysqlPooledConnection conn,
			Statement toWrap) {
		super(c, conn, toWrap);
	}
	
	public void close() throws SQLException {
		try {
			super.close();
		} finally {
			this.unwrappedInterfaces = null;
		}
	}
	
	public boolean isClosed() throws SQLException {
		try {
			if (this.wrappedStmt != null) {
				return this.wrappedStmt.isClosed();
			} else {
				throw SQLError.createSQLException("Statement already closed",
						SQLError.SQL_STATE_ILLEGAL_ARGUMENT);
			}
		} catch (SQLException sqlEx) {
			checkAndFireConnectionError(sqlEx);
		}
		
		return false; // We never get here, compiler can't tell
	}
	
	public void setPoolable(boolean poolable) throws SQLException {
		try {
			if (this.wrappedStmt != null) {
				this.wrappedStmt.setPoolable(poolable);
			} else {
				throw SQLError.createSQLException("Statement already closed",
						SQLError.SQL_STATE_ILLEGAL_ARGUMENT);
			}
		} catch (SQLException sqlEx) {
			checkAndFireConnectionError(sqlEx);
		}
	}
	
	public boolean isPoolable() throws SQLException {
		try {
			if (this.wrappedStmt != null) {
				return this.wrappedStmt.isPoolable();
			} else {
				throw SQLError.createSQLException("Statement already closed",
						SQLError.SQL_STATE_ILLEGAL_ARGUMENT);
			}
		} catch (SQLException sqlEx) {
			checkAndFireConnectionError(sqlEx);
		}
		
		return false; // We never get here, compiler can't tell
	}
    
	/**
	 * Returns true if this either implements the interface argument or is
	 * directly or indirectly a wrapper for an object that does. Returns false
	 * otherwise. If this implements the interface then return true, else if
	 * this is a wrapper then return the result of recursively calling
	 * <code>isWrapperFor</code> on the wrapped object. If this does not
	 * implement the interface and is not a wrapper, return false. This method
	 * should be implemented as a low-cost operation compared to
	 * <code>unwrap</code> so that callers can use this method to avoid
	 * expensive <code>unwrap</code> calls that may fail. If this method
	 * returns true then calling <code>unwrap</code> with the same argument
	 * should succeed.
	 * 
	 * @param interfaces
	 *            a Class defining an interface.
	 * @return true if this implements the interface or directly or indirectly
	 *         wraps an object that does.
	 * @throws java.sql.SQLException
	 *             if an error occurs while determining whether this is a
	 *             wrapper for an object with the given interface.
	 * @since 1.6
	 */
	public boolean isWrapperFor(Class<?> iface) throws SQLException {

		boolean isInstance = iface.isInstance(this);

		if (isInstance) {
			return true;
		}

		String interfaceClassName = iface.getName();
		
		return (interfaceClassName.equals("com.mysql.jdbc.Statement")
				|| interfaceClassName.equals("java.sql.Statement")
				|| interfaceClassName.equals("java.sql.Wrapper"));
	}

	/**
	 * Returns an object that implements the given interface to allow access to
	 * non-standard methods, or standard methods not exposed by the proxy. The
	 * result may be either the object found to implement the interface or a
	 * proxy for that object. If the receiver implements the interface then that
	 * is the object. If the receiver is a wrapper and the wrapped object
	 * implements the interface then that is the object. Otherwise the object is
	 * the result of calling <code>unwrap</code> recursively on the wrapped
	 * object. If the receiver is not a wrapper and does not implement the
	 * interface, then an <code>SQLException</code> is thrown.
	 * 
	 * @param iface
	 *            A Class defining an interface that the result must implement.
	 * @return an object that implements the interface. May be a proxy for the
	 *         actual implementing object.
	 * @throws java.sql.SQLException
	 *             If no object found that implements the interface
	 * @since 1.6
	 */
	public synchronized <T> T unwrap(java.lang.Class<T> iface)
			throws java.sql.SQLException {
		try {
			if ("java.sql.Statement".equals(iface.getName())
					|| "java.sql.Wrapper.class".equals(iface.getName())) {
				return iface.cast(this);
			}
			
			if (unwrappedInterfaces == null) {
				unwrappedInterfaces = new HashMap();
			}
			
			Object cachedUnwrapped = unwrappedInterfaces.get(iface);
			
			if (cachedUnwrapped == null) {
				cachedUnwrapped = Proxy.newProxyInstance(
						this.wrappedStmt.getClass().getClassLoader(), 
						new Class[] { iface },
						new ConnectionErrorFiringInvocationHandler(this.wrappedStmt));
				unwrappedInterfaces.put(iface, cachedUnwrapped);
			}
			
			return iface.cast(cachedUnwrapped);
		} catch (ClassCastException cce) {
			throw SQLError.createSQLException("Unable to unwrap to "
					+ iface.toString(), SQLError.SQL_STATE_ILLEGAL_ARGUMENT);
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦一区二区三区观看体验 | 99精品黄色片免费大全| 久久这里只有精品6| 韩国三级中文字幕hd久久精品| 欧美一级免费观看| 紧缚捆绑精品一区二区| 国产欧美精品区一区二区三区| 成人午夜激情视频| 亚洲欧洲成人自拍| 欧美久久免费观看| 日韩av网站在线观看| 精品少妇一区二区三区日产乱码| 国产乱码精品一区二区三区忘忧草| 国产日韩欧美一区二区三区乱码| 成人动漫一区二区在线| 亚洲私人影院在线观看| 欧美三级电影在线观看| 久久99久久精品| 国产精品乱人伦| 精品视频在线看| 国产精品18久久久久| 亚洲婷婷在线视频| 日韩一卡二卡三卡四卡| 懂色av中文一区二区三区| 尤物视频一区二区| 日韩精品一区二区在线观看| 豆国产96在线|亚洲| 日韩综合小视频| 国产亚洲精久久久久久| 欧美日韩国产综合一区二区三区| 久久国产尿小便嘘嘘尿| 一区二区三区四区在线播放| 日韩精品一区二区三区视频播放 | 色老汉一区二区三区| 日本在线不卡视频| 一区在线播放视频| 久久综合色鬼综合色| 欧美色图天堂网| 丁香天五香天堂综合| 轻轻草成人在线| 亚洲精品国产精品乱码不99| 精品99999| 在线观看亚洲精品| 成人污污视频在线观看| 欧美a级一区二区| 亚洲自拍都市欧美小说| 欧美激情综合五月色丁香小说| 色综合久久88色综合天天6| 国产乱码精品1区2区3区| 日韩一区精品视频| 亚洲一区二区偷拍精品| 国产精品第13页| 久久色在线观看| 欧美一区二区三区在线观看视频 | 成人中文字幕合集| 麻豆精品一二三| 三级不卡在线观看| 亚洲午夜精品在线| 亚洲最新在线观看| 亚洲色图清纯唯美| 国产精品久久777777| 国产日韩精品一区二区浪潮av| 欧美岛国在线观看| 日韩一区二区视频| 91精品午夜视频| 欧美体内she精高潮| 色综合久久久久综合体| 99久久亚洲一区二区三区青草| 国产精品亚洲а∨天堂免在线| 开心九九激情九九欧美日韩精美视频电影 | 欧美性色黄大片| 91国偷自产一区二区三区成为亚洲经典| 国产精品1区2区| 成人午夜av电影| www.激情成人| 97久久精品人人做人人爽| 国产v综合v亚洲欧| 国产成人免费9x9x人网站视频| 国产成人精品免费网站| 国产精品亚洲专一区二区三区| 久久66热re国产| 国产激情一区二区三区四区| 国产精品资源站在线| 国产suv精品一区二区883| 成人综合在线观看| 91麻豆免费看片| 在线看日韩精品电影| 欧美午夜理伦三级在线观看| 欧美色大人视频| 日韩写真欧美这视频| 欧美精品一区在线观看| 国产喂奶挤奶一区二区三区| 国产精品视频一二| 一区二区三区小说| 日本sm残虐另类| 国产福利电影一区二区三区| 处破女av一区二区| 91亚洲国产成人精品一区二区三| 在线视频中文字幕一区二区| 欧美日韩激情在线| 26uuu欧美| 亚洲精品免费在线观看| 视频一区二区三区中文字幕| 狠狠色丁香婷综合久久| 成人免费高清在线| 欧美视频你懂的| 2024国产精品| 亚洲美女精品一区| 蜜桃视频一区二区| 91亚洲男人天堂| 日韩欧美专区在线| √…a在线天堂一区| 日韩av中文字幕一区二区三区| 国产成人a级片| 欧美色图片你懂的| 中文字幕免费一区| 视频一区中文字幕国产| 粉嫩欧美一区二区三区高清影视| 欧美日韩另类国产亚洲欧美一级| 精品国产伦一区二区三区观看方式| 亚洲人成在线观看一区二区| 蜜桃视频一区二区三区在线观看| 白白色亚洲国产精品| 欧美一区二区三区四区视频| 国产精品久久久久久久久图文区| 天天射综合影视| 99国产精品久久久久久久久久久 | 99re66热这里只有精品3直播| 欧美精品在线观看播放| 国产精品美女久久久久久2018| 午夜精品国产更新| 97成人超碰视| 精品国产髙清在线看国产毛片| 一区二区三区美女视频| 国产精品一区2区| 欧美一区二区二区| 亚洲精品欧美综合四区| 国产白丝网站精品污在线入口| 88在线观看91蜜桃国自产| 亚洲日本va在线观看| 国模冰冰炮一区二区| 欧美老年两性高潮| 亚洲天堂2014| 99久久99久久精品免费看蜜桃| 精品毛片乱码1区2区3区| 日韩精品电影一区亚洲| 91成人在线观看喷潮| 中文字幕一区二区日韩精品绯色| 国产一区二区三区久久久 | 精品国产一区久久| 舔着乳尖日韩一区| 欧美亚洲图片小说| 亚洲欧美一区二区久久| av福利精品导航| 亚洲国产精品精华液2区45| 久久国产精品99久久久久久老狼| 欧美日韩一区二区三区四区五区| 亚洲毛片av在线| 日本道精品一区二区三区| 中文字幕一区二区视频| 盗摄精品av一区二区三区| 久久精品亚洲精品国产欧美kt∨| 国产综合色在线视频区| 精品久久久网站| 国产老肥熟一区二区三区| 久久久久久久久久久久久女国产乱 | 成人小视频在线| 国产日韩一级二级三级| 成人国产精品免费观看动漫| 日本一区二区三区久久久久久久久不| 国产在线麻豆精品观看| 欧美成人福利视频| 国产一区二区三区在线观看免费| 精品少妇一区二区三区日产乱码 | 国产一区二区三区在线观看免费 | 国产精品电影院| 91原创在线视频| 亚洲激情图片一区| 欧美色国产精品| 老司机精品视频导航| 2022国产精品视频| av电影一区二区| 亚洲小说春色综合另类电影| 欧美美女黄视频| 国精品**一区二区三区在线蜜桃| 中文字幕av一区二区三区高 | 麻豆精品蜜桃视频网站| 精品女同一区二区| 成人丝袜18视频在线观看| 亚洲精品成人少妇| 日韩欧美一二区| 成人免费高清在线| 亚洲成人av福利| 久久久亚洲高清| 91蜜桃传媒精品久久久一区二区| 亚洲第四色夜色| 国产日韩欧美一区二区三区综合| 91搞黄在线观看| 麻豆成人久久精品二区三区红 | 欧美三级在线视频|