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

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

?? field.java

?? mysql jdbc驅動程序 mysql jdbc驅動程序 mysql jdbc驅動程序 mysql jdbc驅動程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (C) 2002-2004 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.UnsupportedEncodingException;import java.sql.SQLException;import java.sql.Types;/** * Field is a class used to describe fields in a ResultSet * * @author Mark Matthews * @version $Id: Field.java 6531 2007-08-30 15:21:06Z mmatthews $ */public class Field {	private static final int AUTO_INCREMENT_FLAG = 512;	private static final int NO_CHARSET_INFO = -1;	private byte[] buffer;	private int charsetIndex = 0;	private String charsetName = null;	private int colDecimals;	private short colFlag;	private String collationName = null;	private Connection connection = null;	private String databaseName = null;	private int databaseNameLength = -1;	// database name info	private int databaseNameStart = -1;	private int defaultValueLength = -1;	// default value info - from COM_LIST_FIELDS execution	private int defaultValueStart = -1;	private String fullName = null;	private String fullOriginalName = null;	private boolean isImplicitTempTable = false;	private long length; // Internal length of the field;	private int mysqlType = -1; // the MySQL type	private String name; // The Field name	private int nameLength;	private int nameStart;	private String originalColumnName = null;	private int originalColumnNameLength = -1;	// column name info (before aliasing)	private int originalColumnNameStart = -1;	private String originalTableName = null;	private int originalTableNameLength = -1;	// table name info (before aliasing)	private int originalTableNameStart = -1;	private int precisionAdjustFactor = 0;	private int sqlType = -1; // the java.sql.Type	private String tableName; // The Name of the Table	private int tableNameLength;	private int tableNameStart;	private boolean useOldNameMetadata = false;	private boolean isSingleBit;	private int maxBytesPerChar;	/**	 * Constructor used when communicating with 4.1 and newer servers	 */	Field(Connection conn, byte[] buffer, int databaseNameStart,			int databaseNameLength, int tableNameStart, int tableNameLength,			int originalTableNameStart, int originalTableNameLength,			int nameStart, int nameLength, int originalColumnNameStart,			int originalColumnNameLength, long length, int mysqlType,			short colFlag, int colDecimals, int defaultValueStart,			int defaultValueLength, int charsetIndex) throws SQLException {		this.connection = conn;		this.buffer = buffer;		this.nameStart = nameStart;		this.nameLength = nameLength;		this.tableNameStart = tableNameStart;		this.tableNameLength = tableNameLength;		this.length = length;		this.colFlag = colFlag;		this.colDecimals = colDecimals;		this.mysqlType = mysqlType;		// 4.1 field info...		this.databaseNameStart = databaseNameStart;		this.databaseNameLength = databaseNameLength;		this.originalTableNameStart = originalTableNameStart;		this.originalTableNameLength = originalTableNameLength;		this.originalColumnNameStart = originalColumnNameStart;		this.originalColumnNameLength = originalColumnNameLength;		this.defaultValueStart = defaultValueStart;		this.defaultValueLength = defaultValueLength;		// If we're not running 4.1 or newer, use the connection's		// charset		this.charsetIndex = charsetIndex;		// Map MySqlTypes to java.sql Types		this.sqlType = MysqlDefs.mysqlToJavaType(this.mysqlType);        checkForImplicitTemporaryTable();		// Re-map to 'real' blob type, if we're a BLOB		if (this.mysqlType == MysqlDefs.FIELD_TYPE_BLOB) {		    boolean isFromFunction = this.originalTableNameLength == 0;		    if (this.connection != null && this.connection.getBlobsAreStrings() ||		            (this.connection.getFunctionsNeverReturnBlobs() && isFromFunction)) {		        this.sqlType = Types.VARCHAR;		        this.mysqlType = MysqlDefs.FIELD_TYPE_VARCHAR;		    } else if (this.charsetIndex == 63 ||					!this.connection.versionMeetsMinimum(4, 1, 0)) {				setBlobTypeBasedOnLength();				this.sqlType = MysqlDefs.mysqlToJavaType(this.mysqlType);			} else {				// *TEXT masquerading as blob				this.mysqlType = MysqlDefs.FIELD_TYPE_VAR_STRING;				this.sqlType = Types.LONGVARCHAR;			}		}		if (this.sqlType == Types.TINYINT && this.length == 1				&& this.connection.getTinyInt1isBit()) {			// Adjust for pseudo-boolean			if (conn.getTinyInt1isBit()) {				if (conn.getTransformedBitIsBoolean()) {					this.sqlType = Types.BOOLEAN;				} else {					this.sqlType = Types.BIT;				}			}		}		if (!isNativeNumericType() && !isNativeDateTimeType()) {			this.charsetName = this.connection				.getCharsetNameForIndex(this.charsetIndex);			// Handle VARBINARY/BINARY (server doesn't have a different type			// for this			boolean isBinary = isBinary();			if (this.connection.versionMeetsMinimum(4, 1, 0) &&					this.mysqlType == MysqlDefs.FIELD_TYPE_VAR_STRING &&					isBinary &&					this.charsetIndex == 63) {				if (this.isOpaqueBinary()) {					this.sqlType = Types.VARBINARY;				}			}			if (this.connection.versionMeetsMinimum(4, 1, 0) &&					this.mysqlType == MysqlDefs.FIELD_TYPE_STRING &&					isBinary && this.charsetIndex == 63) {				//				// Okay, this is a hack, but there's currently no way				// to easily distinguish something like DATE_FORMAT( ..)				// from the "BINARY" column type, other than looking				// at the original column name.				//				if (isOpaqueBinary() && !this.connection.getBlobsAreStrings()) {					this.sqlType = Types.BINARY;				}			}			if (this.mysqlType == MysqlDefs.FIELD_TYPE_BIT) {				this.isSingleBit = (this.length == 0);				if (this.connection != null && (this.connection.versionMeetsMinimum(5, 0, 21) ||						this.connection.versionMeetsMinimum(5, 1, 10)) && this.length == 1) {					this.isSingleBit = true;				}				if (this.isSingleBit) {					this.sqlType = Types.BIT;				} else {					this.sqlType = Types.VARBINARY;					this.colFlag |= 128; // we need to pretend this is a full					this.colFlag |= 16; // binary blob					isBinary = true;				}			}			//			// Handle TEXT type (special case), Fix proposed by Peter McKeown			//			if ((this.sqlType == java.sql.Types.LONGVARBINARY) && !isBinary) {				this.sqlType = java.sql.Types.LONGVARCHAR;			} else if ((this.sqlType == java.sql.Types.VARBINARY) && !isBinary) {				this.sqlType = java.sql.Types.VARCHAR;			}		} else {			this.charsetName = "US-ASCII";		}		//		// Handle odd values for 'M' for floating point/decimal numbers		//		if (!isUnsigned()) {			switch (this.mysqlType) {			case MysqlDefs.FIELD_TYPE_DECIMAL:			case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:				this.precisionAdjustFactor = -1;				break;			case MysqlDefs.FIELD_TYPE_DOUBLE:			case MysqlDefs.FIELD_TYPE_FLOAT:				this.precisionAdjustFactor = 1;				break;			}		} else {			switch (this.mysqlType) {			case MysqlDefs.FIELD_TYPE_DOUBLE:			case MysqlDefs.FIELD_TYPE_FLOAT:				this.precisionAdjustFactor = 1;				break;			}		}	}	/**	 * Constructor used when communicating with pre 4.1 servers	 */	Field(Connection conn, byte[] buffer, int nameStart, int nameLength,			int tableNameStart, int tableNameLength, int length, int mysqlType,			short colFlag, int colDecimals) throws SQLException {		this(conn, buffer, -1, -1, tableNameStart, tableNameLength, -1, -1,				nameStart, nameLength, -1, -1, length, mysqlType, colFlag,				colDecimals, -1, -1, NO_CHARSET_INFO);	}	/**	 * Constructor used by DatabaseMetaData methods.	 */	Field(String tableName, String columnName, int jdbcType, int length) {		this.tableName = tableName;		this.name = columnName;		this.length = length;		this.sqlType = jdbcType;		this.colFlag = 0;		this.colDecimals = 0;	}	private void checkForImplicitTemporaryTable() {		this.isImplicitTempTable = this.tableNameLength > 5				&& this.buffer[tableNameStart] == (byte) '#'				&& this.buffer[tableNameStart + 1] == (byte) 's'				&& this.buffer[tableNameStart + 2] == (byte) 'q'				&& this.buffer[tableNameStart + 3] == (byte) 'l'				&& this.buffer[tableNameStart + 4] == (byte) '_';	}	/**	 * Returns the character set (if known) for this field.	 *	 * @return the character set	 */	public String getCharacterSet() throws SQLException {		return this.charsetName;	}	public synchronized String getCollation() throws SQLException {		if (this.collationName == null) {			if (this.connection != null) {				if (this.connection.versionMeetsMinimum(4, 1, 0)) {					if (this.connection.getUseDynamicCharsetInfo()) {						java.sql.DatabaseMetaData dbmd = this.connection								.getMetaData();						String quotedIdStr = dbmd.getIdentifierQuoteString();						if (" ".equals(quotedIdStr)) { //$NON-NLS-1$							quotedIdStr = ""; //$NON-NLS-1$						}						String csCatalogName = getDatabaseName();						String csTableName = getOriginalTableName();						String csColumnName = getOriginalName();						if (csCatalogName != null && csCatalogName.length() != 0								&& csTableName != null && csTableName.length() != 0								&& csColumnName != null								&& csColumnName.length() != 0) {							StringBuffer queryBuf = new StringBuffer(csCatalogName									.length()									+ csTableName.length() + 28);							queryBuf.append("SHOW FULL COLUMNS FROM "); //$NON-NLS-1$							queryBuf.append(quotedIdStr);							queryBuf.append(csCatalogName);							queryBuf.append(quotedIdStr);							queryBuf.append("."); //$NON-NLS-1$							queryBuf.append(quotedIdStr);							queryBuf.append(csTableName);							queryBuf.append(quotedIdStr);							java.sql.Statement collationStmt = null;							java.sql.ResultSet collationRs = null;							try {								collationStmt = this.connection.createStatement();								collationRs = collationStmt.executeQuery(queryBuf										.toString());								while (collationRs.next()) {									if (csColumnName.equals(collationRs											.getString("Field"))) { //$NON-NLS-1$										this.collationName = collationRs												.getString("Collation"); //$NON-NLS-1$										break;									}								}							} finally {								if (collationRs != null) {									collationRs.close();									collationRs = null;								}								if (collationStmt != null) {									collationStmt.close();									collationStmt = null;								}							}						}					} else {						this.collationName = CharsetMapping.INDEX_TO_COLLATION[charsetIndex];					}				}			}		}		return this.collationName;	}	public String getColumnLabel() throws SQLException {		return getName(); // column name if not aliased, alias if used	}	/**	 * DOCUMENT ME!	 *	 * @return DOCUMENT ME!	 */	public String getDatabaseName() throws SQLException {		if ((this.databaseName == null) && (this.databaseNameStart != -1)				&& (this.databaseNameLength != -1)) {			this.databaseName = getStringFromBytes(this.databaseNameStart,					this.databaseNameLength);		}		return this.databaseName;	}	int getDecimals() {		return this.colDecimals;	}	/**	 * DOCUMENT ME!	 *	 * @return DOCUMENT ME!	 */	public String getFullName() throws SQLException {		if (this.fullName == null) {			StringBuffer fullNameBuf = new StringBuffer(getTableName().length()					+ 1 + getName().length());			fullNameBuf.append(this.tableName);			// much faster to append a char than a String			fullNameBuf.append('.');			fullNameBuf.append(this.name);			this.fullName = fullNameBuf.toString();			fullNameBuf = null;		}		return this.fullName;	}	/**	 * DOCUMENT ME!	 *	 * @return DOCUMENT ME!	 */	public String getFullOriginalName() throws SQLException {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播放三区四区| 51久久夜色精品国产麻豆| 成人动漫视频在线| 欧美自拍偷拍一区| 欧美一卡2卡三卡4卡5免费| 国产视频一区二区在线观看| 亚洲欧美国产77777| 日韩成人免费在线| 日本韩国一区二区三区| 欧美大片国产精品| 亚洲日本韩国一区| 黄网站免费久久| 91福利国产成人精品照片| 日韩精品一区二区三区在线播放| 国产精品久久久久毛片软件| 偷拍日韩校园综合在线| 99精品久久99久久久久| 欧美大片在线观看| 亚洲第一电影网| 99精品久久免费看蜜臀剧情介绍| 69久久99精品久久久久婷婷| 日韩毛片高清在线播放| 国产精品资源站在线| 精品视频在线免费看| 国产精品久久久久aaaa樱花 | 国产精品美女久久久久aⅴ | 成人欧美一区二区三区白人| 国产99久久久国产精品免费看| www.欧美色图| 日本一区二区电影| 国产一区二区成人久久免费影院| 欧美日韩国产一二三| 亚洲精品高清在线| 色吊一区二区三区| 亚洲狼人国产精品| 色综合色综合色综合色综合色综合| 久久无码av三级| 国产一区二区剧情av在线| 欧美成人官网二区| 麻豆freexxxx性91精品| 日韩精品中文字幕一区| 国产在线精品一区二区不卡了| 日韩欧美国产精品一区| 蜜桃视频一区二区| 成人午夜在线视频| 亚洲码国产岛国毛片在线| 日本久久精品电影| 婷婷成人激情在线网| 久久久高清一区二区三区| 国产高清亚洲一区| 亚洲欧洲日产国码二区| 欧美日韩在线精品一区二区三区激情| 亚洲国产毛片aaaaa无费看| 91麻豆精品久久久久蜜臀| 麻豆91免费观看| 国产精品色哟哟网站| 色综合久久天天综合网| 蜜桃视频在线观看一区| 亚洲国产高清在线观看视频| 在线观看日韩国产| 日本乱码高清不卡字幕| 午夜精品福利久久久| 国产女主播一区| 欧美日韩综合不卡| 风间由美一区二区av101 | 一区二区三区在线视频免费观看| 在线视频国产一区| 国产高清一区日本| 日韩中文字幕一区二区三区| 欧美激情艳妇裸体舞| 日韩亚洲欧美在线| 91福利资源站| fc2成人免费人成在线观看播放| 免费三级欧美电影| 天天色 色综合| 亚洲一二三区视频在线观看| 国产精品久久久久久久久免费桃花 | 亚洲一区二区三区激情| 中文幕一区二区三区久久蜜桃| 欧美一区二区三区视频| 色8久久人人97超碰香蕉987| 欧美不卡一二三| 欧美另类变人与禽xxxxx| 色偷偷久久一区二区三区| 成人深夜福利app| 久久99国产精品免费网站| 午夜精品aaa| 男男视频亚洲欧美| 亚洲图片欧美一区| 亚洲一区二区精品视频| 丝袜亚洲另类欧美| 天天操天天色综合| 奇米精品一区二区三区在线观看| 亚洲成人免费在线| 亚洲国产精品久久艾草纯爱| 亚洲成年人影院| 国产99精品国产| 韩国精品久久久| 国产高清精品在线| aaa国产一区| 欧美午夜免费电影| 日韩欧美卡一卡二| 国产农村妇女精品| 亚洲私人影院在线观看| 亚洲第一激情av| 国内精品免费**视频| 99久久久免费精品国产一区二区 | 韩国欧美一区二区| 99久久免费视频.com| 欧美电影在线免费观看| 久久久久综合网| 亚洲在线视频免费观看| 国产一区在线观看麻豆| 色综合av在线| 久久这里只有精品首页| 亚洲视频免费观看| 蜜臀av一区二区三区| 大胆欧美人体老妇| 欧美日韩精品综合在线| 日本一区二区综合亚洲| 亚洲午夜久久久| 成人福利视频网站| 精品婷婷伊人一区三区三| 国产人成一区二区三区影院| 亚洲成av人片观看| 国产福利91精品一区| 国产精品原创巨作av| 91香蕉视频污| 精品99久久久久久| 夜夜操天天操亚洲| 国产乱码精品1区2区3区| 在线观看中文字幕不卡| 日本麻豆一区二区三区视频| 亚洲男同1069视频| 精品一区二区精品| 欧美性欧美巨大黑白大战| 久久久精品蜜桃| 一级女性全黄久久生活片免费| 精品一区二区在线观看| 99视频一区二区| 国产女主播在线一区二区| 一区二区三区中文免费| 成人18精品视频| 国产午夜精品一区二区三区嫩草| 天天综合网 天天综合色| 91麻豆免费在线观看| 国产欧美一区二区精品仙草咪| 亚洲va天堂va国产va久| 不卡一二三区首页| 国产人成亚洲第一网站在线播放| 激情综合网天天干| 日韩久久久精品| 免费xxxx性欧美18vr| 亚洲精品欧美在线| 91久久人澡人人添人人爽欧美| 国产精品不卡视频| 不卡影院免费观看| 中文字幕不卡的av| 在线观看日韩av先锋影音电影院| 亚洲精品国久久99热| 91久久精品一区二区二区| 亚洲图片自拍偷拍| 欧美一区二区三区男人的天堂| 美女一区二区三区在线观看| 国产精品私人影院| 在线观看91av| 国产一区激情在线| 国产精品嫩草99a| 成人国产精品免费观看视频| 亚洲区小说区图片区qvod| 在线观看视频一区二区欧美日韩| 亚洲成国产人片在线观看| 欧美日韩一区二区在线视频| 亚洲精品国产a久久久久久| 欧美精品第一页| 国产伦精一区二区三区| **性色生活片久久毛片| 成人看片黄a免费看在线| 久久免费午夜影院| 北条麻妃一区二区三区| 国产精品国产三级国产三级人妇| 91性感美女视频| 伦理电影国产精品| 国产精品欧美一区二区三区| 91福利社在线观看| 极品尤物av久久免费看| 日韩毛片高清在线播放| 欧美一区二区在线看| 国产成人在线看| 亚洲电影视频在线| 自拍偷自拍亚洲精品播放| 欧美r级在线观看| 欧美午夜精品久久久久久超碰| 国产精品乡下勾搭老头1| 日韩成人精品视频| 依依成人精品视频| 中文字幕第一区二区| 久久嫩草精品久久久精品一| 欧美一区二区三区白人 | 一本色道久久综合亚洲aⅴ蜜桃|