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

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

?? callablestatement.java

?? 用于JAVA數(shù)據(jù)庫(kù)連接.解壓就可用,方便得很
?? JAVA
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(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;import java.io.InputStream;import java.io.Reader;import java.io.UnsupportedEncodingException;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;import java.math.BigDecimal;import java.net.URL;import java.sql.Array;import java.sql.Blob;import java.sql.Clob;import java.sql.Date;import java.sql.ParameterMetaData;import java.sql.Ref;import java.sql.SQLException;import java.sql.Time;import java.sql.Timestamp;import java.sql.Types;import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Properties;import com.mysql.jdbc.exceptions.NotYetImplementedException;/** * Representation of stored procedures for JDBC *  * @author Mark Matthews * @version $Id: CallableStatement.java,v 1.1.2.1 2005/05/13 18:58:38 mmatthews *          Exp $ */public class CallableStatement extends PreparedStatement implements		java.sql.CallableStatement {	protected final static Constructor JDBC_4_CSTMT_2_ARGS_CTOR;		protected final static Constructor JDBC_4_CSTMT_4_ARGS_CTOR;		static {		if (Util.isJdbc4()) {			try {				JDBC_4_CSTMT_2_ARGS_CTOR = Class.forName(						"com.mysql.jdbc.JDBC4CallableStatement")						.getConstructor(								new Class[] { ConnectionImpl.class,										CallableStatementParamInfo.class });				JDBC_4_CSTMT_4_ARGS_CTOR = Class.forName(						"com.mysql.jdbc.JDBC4CallableStatement")						.getConstructor(								new Class[] { ConnectionImpl.class,										String.class, String.class,										Boolean.TYPE });			} catch (SecurityException e) {				throw new RuntimeException(e);			} catch (NoSuchMethodException e) {				throw new RuntimeException(e);			} catch (ClassNotFoundException e) {				throw new RuntimeException(e);			}		} else {			JDBC_4_CSTMT_4_ARGS_CTOR = null;			JDBC_4_CSTMT_2_ARGS_CTOR = null;		}	}		protected class CallableStatementParam {		int desiredJdbcType;		int index;		int inOutModifier;		boolean isIn;		boolean isOut;		int jdbcType;		short nullability;		String paramName;		int precision;		int scale;		String typeName;		CallableStatementParam(String name, int idx, boolean in, boolean out,				int jdbcType, String typeName, int precision, int scale,				short nullability, int inOutModifier) {			this.paramName = name;			this.isIn = in;			this.isOut = out;			this.index = idx;			this.jdbcType = jdbcType;			this.typeName = typeName;			this.precision = precision;			this.scale = scale;			this.nullability = nullability;			this.inOutModifier = inOutModifier;		}		/*		 * (non-Javadoc)		 * 		 * @see java.lang.Object#clone()		 */		protected Object clone() throws CloneNotSupportedException {			return super.clone();		}	}	protected class CallableStatementParamInfo {		String catalogInUse;		boolean isFunctionCall;		String nativeSql;		int numParameters;		List parameterList;		Map parameterMap;		/**		 * Constructor that converts a full list of parameter metadata into one		 * that only represents the placeholders present in the {CALL ()}.		 * 		 * @param fullParamInfo the metadata for all parameters for this stored 		 * procedure or function.		 */		CallableStatementParamInfo(CallableStatementParamInfo fullParamInfo) {			this.nativeSql = originalSql;			this.catalogInUse = currentCatalog;			isFunctionCall = fullParamInfo.isFunctionCall;			int[] localParameterMap = placeholderToParameterIndexMap;			int parameterMapLength = localParameterMap.length;						parameterList = new ArrayList(fullParamInfo.numParameters);			parameterMap = new HashMap(fullParamInfo.numParameters);						if (isFunctionCall) {				// Take the return value				parameterList.add(fullParamInfo.parameterList.get(0));			}						int offset = isFunctionCall ? 1 : 0;						for (int i = 0; i < parameterMapLength; i++) {				if (localParameterMap[i] != 0) {					CallableStatementParam param = (CallableStatementParam)fullParamInfo.parameterList.get(localParameterMap[i] + offset);										parameterList.add(param);					parameterMap.put(param.paramName, param);				}			}						this.numParameters = parameterList.size();		}				CallableStatementParamInfo(java.sql.ResultSet paramTypesRs)				throws SQLException {			boolean hadRows = paramTypesRs.last();			this.nativeSql = originalSql;			this.catalogInUse = currentCatalog;			isFunctionCall = callingStoredFunction;			if (hadRows) {				this.numParameters = paramTypesRs.getRow();				this.parameterList = new ArrayList(this.numParameters);				this.parameterMap = new HashMap(this.numParameters);				paramTypesRs.beforeFirst();				addParametersFromDBMD(paramTypesRs);			} else {				this.numParameters = 0;			}						if (isFunctionCall) {				this.numParameters += 1;		}		}		private void addParametersFromDBMD(java.sql.ResultSet paramTypesRs)				throws SQLException {			int i = 0;			while (paramTypesRs.next()) {				String paramName = paramTypesRs.getString(4);				int inOutModifier = paramTypesRs.getInt(5);				boolean isOutParameter = false;				boolean isInParameter = false;				if (i == 0 && isFunctionCall) {					isOutParameter = true;					isInParameter = false;				} else if (inOutModifier == DatabaseMetaData.procedureColumnInOut) {					isOutParameter = true;					isInParameter = true;				} else if (inOutModifier == DatabaseMetaData.procedureColumnIn) {					isOutParameter = false;					isInParameter = true;				} else if (inOutModifier == DatabaseMetaData.procedureColumnOut) {					isOutParameter = true;					isInParameter = false;				}				int jdbcType = paramTypesRs.getInt(6);				String typeName = paramTypesRs.getString(7);				int precision = paramTypesRs.getInt(8);				int scale = paramTypesRs.getInt(10);				short nullability = paramTypesRs.getShort(12);				CallableStatementParam paramInfoToAdd = new CallableStatementParam(						paramName, i++, isInParameter, isOutParameter,						jdbcType, typeName, precision, scale, nullability,						inOutModifier);				this.parameterList.add(paramInfoToAdd);				this.parameterMap.put(paramName, paramInfoToAdd);			}		}		protected void checkBounds(int paramIndex) throws SQLException {			int localParamIndex = paramIndex - 1;			if ((paramIndex < 0) || (localParamIndex >= this.numParameters)) {				throw SQLError.createSQLException(						Messages.getString("CallableStatement.11") + paramIndex //$NON-NLS-1$								+ Messages.getString("CallableStatement.12") + numParameters //$NON-NLS-1$								+ Messages.getString("CallableStatement.13"), SQLError.SQL_STATE_ILLEGAL_ARGUMENT); //$NON-NLS-1$			}		}		/*		 * (non-Javadoc)		 * 		 * @see java.lang.Object#clone()		 */		protected Object clone() throws CloneNotSupportedException {			// TODO Auto-generated method stub			return super.clone();		}		CallableStatementParam getParameter(int index) {			return (CallableStatementParam) this.parameterList.get(index);		}		CallableStatementParam getParameter(String name) {			return (CallableStatementParam) this.parameterMap.get(name);		}		public String getParameterClassName(int arg0) throws SQLException {			String mysqlTypeName = getParameterTypeName(arg0);						boolean isBinaryOrBlob = StringUtils.indexOfIgnoreCase(mysqlTypeName, "BLOB") != -1 || 				StringUtils.indexOfIgnoreCase(mysqlTypeName, "BINARY") != -1;						boolean isUnsigned = StringUtils.indexOfIgnoreCase(mysqlTypeName, "UNSIGNED") != -1;						int mysqlTypeIfKnown = 0;						if (StringUtils.startsWithIgnoreCase(mysqlTypeName, "MEDIUMINT")) {				mysqlTypeIfKnown = MysqlDefs.FIELD_TYPE_INT24;			}						return ResultSetMetaData.getClassNameForJavaType(getParameterType(arg0), 					isUnsigned, mysqlTypeIfKnown, isBinaryOrBlob, false);		}		public int getParameterCount() throws SQLException {			if (this.parameterList == null) {				return 0;			}						return this.parameterList.size();		}		public int getParameterMode(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).inOutModifier;		}		public int getParameterType(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).jdbcType;		}		public String getParameterTypeName(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).typeName;		}		public int getPrecision(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).precision;		}		public int getScale(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).scale;		}		public int isNullable(int arg0) throws SQLException {			checkBounds(arg0);			return getParameter(arg0 - 1).nullability;		}		public boolean isSigned(int arg0) throws SQLException {			checkBounds(arg0);			return false;		}		Iterator iterator() {			return this.parameterList.iterator();		}		int numberOfParameters() {			return this.numParameters;		}	}	/**	 * Can't implement this directly, as then you can't use callable statements	 * on JDK-1.3.1, which unfortunately isn't EOL'd yet, and still present	 * quite a bit out there in the wild (Websphere, FreeBSD, anyone?)	 */	protected class CallableStatementParamInfoJDBC3 extends CallableStatementParamInfo			implements ParameterMetaData {		CallableStatementParamInfoJDBC3(java.sql.ResultSet paramTypesRs)				throws SQLException {			super(paramTypesRs);		}		public CallableStatementParamInfoJDBC3(CallableStatementParamInfo paramInfo) {			super(paramInfo);		}				/**	     * 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 {			checkClosed();						// This works for classes that aren't actually wrapping			// anything			return iface.isInstance(this);		}	    /**	     * 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 Object unwrap(Class iface) throws java.sql.SQLException {	    	try {	    		// This works for classes that aren't actually wrapping	    		// anything	    		return Util.cast(iface, this);	        } catch (ClassCastException cce) {	            throw SQLError.createSQLException("Unable to unwrap to " + iface.toString(), 	            		SQLError.SQL_STATE_ILLEGAL_ARGUMENT);	        }	    }	}	private final static int NOT_OUTPUT_PARAMETER_INDICATOR = Integer.MIN_VALUE;	private final static String PARAMETER_NAMESPACE_PREFIX = "@com_mysql_jdbc_outparam_"; //$NON-NLS-1$	private static String mangleParameterName(String origParameterName) {		if (origParameterName == null) {			return null;		}		int offset = 0;		if (origParameterName.length() > 0				&& origParameterName.charAt(0) == '@') {			offset = 1;		}		StringBuffer paramNameBuf = new StringBuffer(PARAMETER_NAMESPACE_PREFIX				.length()				+ origParameterName.length());		paramNameBuf.append(PARAMETER_NAMESPACE_PREFIX);		paramNameBuf.append(origParameterName.substring(offset));		return paramNameBuf.toString();	}	private boolean callingStoredFunction = false;	private ResultSetInternalMethods functionReturnValueResults;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜在线视频| 亚洲尤物在线视频观看| 久久国产福利国产秒拍| 在线播放亚洲一区| 日本在线不卡视频| 在线播放亚洲一区| 视频一区二区三区在线| 欧美剧情片在线观看| 亚洲一区二区成人在线观看| 一本一道久久a久久精品| 一区免费观看视频| 91丝袜美女网| 亚洲久草在线视频| 色88888久久久久久影院按摩 | 亚洲人成影院在线观看| www.66久久| 亚洲情趣在线观看| 在线观看免费一区| 亚洲国产精品一区二区久久| 欧美日本一区二区三区四区| 日韩中文欧美在线| 日韩一区二区免费电影| 美女在线一区二区| 精品电影一区二区| 国产福利一区在线| 国产精品第13页| 在线观看91精品国产入口| 亚洲午夜av在线| 日韩一区二区在线观看| 另类成人小视频在线| 国产调教视频一区| 91年精品国产| 午夜国产不卡在线观看视频| 91精品国产91久久久久久最新毛片 | 久久久精品黄色| av福利精品导航| 亚洲综合激情另类小说区| 欧美日韩精品系列| 精品伊人久久久久7777人| 日本一区二区在线不卡| 色就色 综合激情| 蜜桃视频第一区免费观看| 久久久久久久久久久久久夜| 99re热视频精品| 天天爽夜夜爽夜夜爽精品视频| 欧美成人r级一区二区三区| 国产精品性做久久久久久| 国产精品国产三级国产普通话99| 欧美性猛交一区二区三区精品 | 日韩成人一级片| 久久综合色一综合色88| kk眼镜猥琐国模调教系列一区二区| 亚洲综合av网| 欧美一区2区视频在线观看| 国产一区二区成人久久免费影院| 18欧美乱大交hd1984| 正在播放一区二区| 粉嫩av一区二区三区| 亚洲自拍偷拍综合| 久久影院午夜论| 色综合视频在线观看| 全国精品久久少妇| 中文字幕五月欧美| 日韩视频免费直播| av中文字幕不卡| 麻豆成人av在线| 亚洲欧美日韩综合aⅴ视频| 日韩精品一区二区三区中文精品| 99久久综合精品| 久久精品免费观看| 一区二区三区**美女毛片| 精品国产成人在线影院| 在线看日本不卡| 国产精品正在播放| 午夜精品久久久| 亚洲欧美在线视频| 日韩美女一区二区三区| 91成人国产精品| 国产成人免费网站| 日韩不卡在线观看日韩不卡视频| 中文字幕一区视频| 久久这里只有精品视频网| 欧美色偷偷大香| 99re热视频这里只精品| 国产一区二区在线观看视频| 亚洲午夜日本在线观看| 国产精品欧美综合在线| 日韩欧美的一区| 欧美日韩mp4| 一本一道综合狠狠老| 国产福利不卡视频| 蜜臀久久久久久久| 亚洲一区二区视频| 亚洲天堂2016| 欧美国产日韩一二三区| 激情五月婷婷综合网| 另类中文字幕网| 一区二区三区高清| 国产精品视频yy9299一区| 日韩精品自拍偷拍| 欧美日韩国产bt| 欧洲一区在线电影| 91麻豆.com| 精品久久久久av影院| av一区二区三区黑人| 国产精品一区一区三区| 激情文学综合插| 日韩av一区二区三区四区| 亚洲图片自拍偷拍| 亚洲男人的天堂在线aⅴ视频| 国产日韩亚洲欧美综合| 欧美精品一区二区三区一线天视频| 欧美精品色一区二区三区| 在线观看亚洲一区| 一本色道久久综合精品竹菊| 成人av在线看| 成人涩涩免费视频| 国产成人精品亚洲777人妖| 国内精品免费在线观看| 激情综合网av| 激情另类小说区图片区视频区| 日韩专区一卡二卡| 午夜影院久久久| 婷婷综合另类小说色区| 亚洲第一精品在线| 亚洲6080在线| 午夜精品福利一区二区蜜股av| 亚洲国产成人av网| 亚洲成人av电影在线| 亚洲午夜免费福利视频| 亚洲图片欧美综合| 亚洲国产日韩一区二区| 亚洲图片欧美色图| 亚洲a一区二区| 日韩影院精彩在线| 日本欧美加勒比视频| 蜜臀av一区二区在线免费观看 | 美女一区二区三区在线观看| 秋霞电影一区二区| 另类专区欧美蜜桃臀第一页| 国产一区二区三区蝌蚪| 国产福利一区二区三区视频| 成人性生交大片免费| 99久久精品费精品国产一区二区| 91片在线免费观看| 欧美日韩三级一区二区| 7777精品伊人久久久大香线蕉完整版| 91精品在线观看入口| 精品国产乱码久久久久久1区2区| 久久天天做天天爱综合色| 国产欧美一区二区精品性色| 18欧美乱大交hd1984| 亚洲国产综合在线| 美女高潮久久久| 国产 欧美在线| 色成年激情久久综合| 7777精品伊人久久久大香线蕉| 精品久久人人做人人爰| 中文字幕不卡三区| 一区二区日韩电影| 视频一区欧美日韩| 国产福利一区在线观看| 91久久国产最好的精华液| 欧美美女bb生活片| 久久综合999| 自拍偷拍国产精品| 首页欧美精品中文字幕| 国产精品综合久久| 91极品美女在线| 欧美一二三四在线| 国产精品欧美一级免费| 亚洲成a人片综合在线| 韩国女主播一区| 色婷婷精品久久二区二区蜜臂av| 91精品国产综合久久香蕉麻豆| 久久久www免费人成精品| 伊人夜夜躁av伊人久久| 蜜桃一区二区三区在线| 成人激情免费网站| 欧美日韩激情一区二区三区| 国产亚洲午夜高清国产拍精品 | 国产精品美女一区二区三区| 亚洲电影第三页| 国产一区在线视频| 欧美亚洲国产一卡| 久久久五月婷婷| 亚洲综合网站在线观看| 国产一区二区女| 欧美体内she精高潮| 久久夜色精品一区| 亚洲香蕉伊在人在线观| 国产成人免费网站| 制服.丝袜.亚洲.另类.中文| 亚洲欧洲日韩综合一区二区| 免费欧美日韩国产三级电影| 成人av在线资源网站| 日韩欧美激情一区| 亚洲主播在线观看| 成人免费av网站| 精品久久久久久久一区二区蜜臀|