⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resultsetmetadata.java

📁 我费了好大劲才找到的一款非常全的OA办公自动化软件源码
💻 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 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.sql.SQLException;import java.sql.Types;/** * A ResultSetMetaData object can be used to find out about the types and * properties of the columns in a ResultSet * * @see java.sql.ResultSetMetaData * @author Mark Matthews * @version $Id: ResultSetMetaData.java,v 1.12.2.12 2004/09/13 18:03:37 mmatthew Exp $ */public class ResultSetMetaData implements java.sql.ResultSetMetaData {    Field[] fields;    /**            * Initialise for a result with a tuple set and     * a field descriptor set     *     * @param fields the array of field descriptors     */    public ResultSetMetaData(Field[] fields) {        this.fields = fields;    }    /**     * Is the column automatically numbered (and thus read-only)     *     * MySQL Auto-increment columns are not read only,     * so to conform to the spec, this method returns false.     *     * @param column the first column is 1, the second is 2...     * @return true if so     * @throws java.sql.SQLException if a database access error occurs     */    public boolean isAutoIncrement(int column) throws java.sql.SQLException {        Field f = getField(column);        return f.isAutoIncrement();    }    /**     * Does a column's case matter? ASSUMPTION: Any field that is     * not obviously case insensitive is assumed to be case sensitive     *     * @param column the first column is 1, the second is 2...     * @return true if so     * @throws java.sql.SQLException if a database access error occurs     */    public boolean isCaseSensitive(int column) throws java.sql.SQLException {    	Field field = getField(column);    	        int sqlType = field.getSQLType();        switch (sqlType) {        case Types.BIT:        case Types.TINYINT:        case Types.SMALLINT:        case Types.INTEGER:        case Types.BIGINT:        case Types.FLOAT:        case Types.REAL:        case Types.DOUBLE:        case Types.DATE:        case Types.TIME:        case Types.TIMESTAMP:            return false;        	        case Types.CHAR:        case Types.VARCHAR:        	        	return field.isBinary();        	    	        default:            return true;        }    }    /**     * What's a column's table's catalog name?     *     * @param column the first column is 1, the second is 2...     * @return catalog name, or "" if not applicable     * @throws java.sql.SQLException if a database access error occurs     */    public String getCatalogName(int column) throws java.sql.SQLException {        Field f = getField(column);        String database = f.getDatabaseName();        return (database == null) ? "" : database;    }    //--------------------------JDBC 2.0-----------------------------------    /**     * JDBC 2.0     *     * <p>Return the fully qualified name of the Java class whose instances     * are manufactured if ResultSet.getObject() is called to retrieve a value     * from the column.  ResultSet.getObject() may return a subClass of the     * class returned by this method.     *     * @param column the column number to retrieve information for     * @return the fully qualified name of the Java class whose instances     * are manufactured if ResultSet.getObject() is called to retrieve a value     * from the column.     *     * @throws SQLException if an error occurs     */    public String getColumnClassName(int column) throws SQLException {        Field f = getField(column);        // From JDBC-3.0 spec        //        //  JDBC Type Java Object Type        //        // CHAR 			String        // VARCHAR 			String        // LONGVARCHAR 		String        // NUMERIC 			java.math.BigDecimal        // DECIMAL 			java.math.BigDecimal        // BIT 				Boolean        // BOOLEAN 			Boolean        // TINYINT 			Integer        // SMALLINT 		Integer        // INTEGER 			Integer        // BIGINT 			Long        // REAL 			Float        // FLOAT 			Double        // DOUBLE 			Double        // BINARY 			byte[]        // VARBINARY 		byte[]        // LONGVARBINARY 	byte[]        // DATE 			java.sql.Date        // TIME 			java.sql.Time        // TIMESTAMP 		java.sql.Timestamp        // DISTINCT 		Object type of underlying type        // CLOB 			Clob        // BLOB 			Blob        // ARRAY 			Array        // STRUCT 			Struct or SQLData        // REF 				Ref        // DATALINK 		java.net.URL        // JAVA_OBJECT 		underlying Java class                 switch (f.getSQLType()) {        case Types.BIT:        case Types.BOOLEAN:            return "java.lang.Boolean";        case Types.TINYINT:            return "java.lang.Integer";                   case Types.SMALLINT:            return "java.lang.Integer";        case Types.INTEGER:            if (f.isUnsigned()) {                return "java.lang.Long";            } else {                return "java.lang.Integer";            }        case Types.BIGINT:        	            return "java.lang.Long";        case Types.DECIMAL:        case Types.NUMERIC:        	            return "java.math.BigDecimal";        case Types.REAL:                    return "java.lang.Float";                case Types.FLOAT:        case Types.DOUBLE:        	            return "java.lang.Double";        case Types.CHAR:        case Types.VARCHAR:        case Types.LONGVARCHAR:        	            return "java.lang.String";        case Types.BINARY:        case Types.VARBINARY:        case Types.LONGVARBINARY:            if (!f.isBlob()) {                return "java.lang.String";            } else if (!f.isBinary()) {                return "java.lang.String";            } else {                return "[B";            }        case Types.DATE:        	            return "java.sql.Date";        case Types.TIME:        	            return "java.sql.Time";        case Types.TIMESTAMP:        	            return "java.sql.Timestamp";        default:        	            return "java.lang.Object";        }    }    /**     * What's the MySQL character set name for the given column?     *      * @param column the first column is 1, the second is 2, etc.     *      * @return the MySQL character set name for the given column     * @throws SQLException if an invalid column index is given.     */    public String getColumnCharacterSet(int column) throws SQLException {    	return getField(column).getCharacterSet();    }        /**     * What's the Java character encoding name for the given column?     *      * @param column the first column is 1, the second is 2, etc.     *      * @return the Java character encoding name for the given column,     * or null if no Java character encoding maps to the MySQL character set     * for the given column.     *      * @throws SQLException if an invalid column index is given.     */    public String getColumnCharacterEncoding(int column) throws SQLException {    	String mysqlName = getColumnCharacterSet(column);    	    	String javaName = null;    	    	if (mysqlName != null) {    		javaName = (String)CharsetMapping.MYSQL_TO_JAVA_CHARSET_MAP.get(mysqlName);    	}    	    	return javaName;    }        /**     * Whats the number of columns in the ResultSet?     *     * @return the number     * @throws java.sql.SQLException if a database access error occurs     */    public int getColumnCount() throws java.sql.SQLException {        return fields.length;    }    /**     * What is the column's normal maximum width in characters?     *     * @param column the first column is 1, the second is 2, etc.     * @return the maximum width     * @throws java.sql.SQLException if a database access error occurs     */    public int getColumnDisplaySize(int column) throws java.sql.SQLException {        return (int)getField(column).getLength();    }    /**     * What is the suggested column title for use in printouts and     * displays?     *     * @param column the first column is 1, the second is 2, etc.     * @return the column label     * @throws java.sql.SQLException if a database access error occurs     */    public String getColumnLabel(int column) throws java.sql.SQLException {        return getColumnName(column);    }    /**     * What's a column's name?     *     * @param column the first column is 1, the second is 2, etc.     * @return the column name     * @throws java.sql.SQLException if a databvase access error occurs     */    public String getColumnName(int column) throws java.sql.SQLException {        return getField(column).getName();    }    /**     * What is a column's SQL Type? (java.sql.Type int)     *     * @param column the first column is 1, the second is 2, etc.     * @return the java.sql.Type value

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -