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

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

?? databasemetadata.java

?? 基于java的oa系統
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* 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.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Types;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.StringTokenizer;import java.util.TreeMap;/** * JDBC Interface to Mysql functions *  * <p> * This class provides information about the database as a whole. * </p> *  * <p> * Many of the methods here return lists of information in ResultSets. You can * use the normal ResultSet methods such as getString and getInt to retrieve * the data from these ResultSets.  If a given form of metadata is not * available, these methods show throw a java.sql.SQLException. * </p> *  * <p> * Some of these methods take arguments that are String patterns.  These * methods all have names such as fooPattern.  Within a pattern String "%" * means match any substring of 0 or more characters and "_" means match any * one character. * </p> * * @author Mark Matthews * @version $Id: DatabaseMetaData.java,v 1.27.2.44 2004/09/30 07:35:03 mmatthew Exp $ */public class DatabaseMetaData implements java.sql.DatabaseMetaData {    private static final byte[] TABLE_AS_BYTES = "TABLE".getBytes();    /** The table type for generic tables that support foreign keys. */    private static final String SUPPORTS_FK = "SUPPORTS_FK";    //    // Column indexes used by all DBMD foreign key    // ResultSets    //    private static final int PKTABLE_CAT = 0;    private static final int PKTABLE_SCHEM = 1;    private static final int PKTABLE_NAME = 2;    private static final int PKCOLUMN_NAME = 3;    private static final int FKTABLE_CAT = 4;    private static final int FKTABLE_SCHEM = 5;    private static final int FKTABLE_NAME = 6;    private static final int FKCOLUMN_NAME = 7;    private static final int KEY_SEQ = 8;    private static final int UPDATE_RULE = 9;    private static final int DELETE_RULE = 10;    private static final int FK_NAME = 11;    private static final int PK_NAME = 12;    private static final int DEFERRABILITY = 13;    /** The connection to the database */    private Connection conn;    /** The 'current' database name being used */    private String database = null;    /** What character to use when quoting identifiers */    private String quotedId = null;    /**     * Creates a new DatabaseMetaData object.     *     * @param conn DOCUMENT ME!     * @param database DOCUMENT ME!     */    public DatabaseMetaData(Connection conn, String database) {        this.conn = conn;        this.database = database;        try {            this.quotedId = this.conn.supportsQuotedIdentifiers()                ? getIdentifierQuoteString() : "";        } catch (SQLException sqlEx) {            // Forced by API, never thrown from getIdentifierQuoteString() in this            // implementation.            AssertionFailedException.shouldNotHappen(sqlEx);        }    }    /**     * @see DatabaseMetaData#getAttributes(String, String, String, String)     */    public java.sql.ResultSet getAttributes(String arg0, String arg1,        String arg2, String arg3) throws SQLException {        Field[] fields = new Field[21];        fields[0] = new Field("", "TYPE_CAT", Types.CHAR, 32);        fields[1] = new Field("", "TYPE_SCHEM", Types.CHAR, 32);        fields[2] = new Field("", "TYPE_NAME", Types.CHAR, 32);        fields[3] = new Field("", "ATTR_NAME", Types.CHAR, 32);        fields[4] = new Field("", "DATA_TYPE", Types.SMALLINT, 32);        fields[5] = new Field("", "ATTR_TYPE_NAME", Types.CHAR, 32);        fields[6] = new Field("", "ATTR_SIZE", Types.INTEGER, 32);        fields[7] = new Field("", "DECIMAL_DIGITS", Types.INTEGER, 32);        fields[8] = new Field("", "NUM_PREC_RADIX", Types.INTEGER, 32);        fields[9] = new Field("", "NULLABLE ", Types.INTEGER, 32);        fields[10] = new Field("", "REMARKS", Types.CHAR, 32);        fields[11] = new Field("", "ATTR_DEF", Types.CHAR, 32);        fields[12] = new Field("", "SQL_DATA_TYPE", Types.INTEGER, 32);        fields[13] = new Field("", "SQL_DATETIME_SUB", Types.INTEGER, 32);        fields[14] = new Field("", "CHAR_OCTET_LENGTH", Types.INTEGER, 32);        fields[15] = new Field("", "ORDINAL_POSITION", Types.INTEGER, 32);        fields[16] = new Field("", "IS_NULLABLE", Types.CHAR, 32);        fields[17] = new Field("", "SCOPE_CATALOG", Types.CHAR, 32);        fields[18] = new Field("", "SCOPE_SCHEMA", Types.CHAR, 32);        fields[19] = new Field("", "SCOPE_TABLE", Types.CHAR, 32);        fields[20] = new Field("", "SOURCE_DATA_TYPE", Types.SMALLINT, 32);        return buildResultSet(fields, new ArrayList());    }    /**     * Get a description of a table's optimal set of columns that uniquely     * identifies a row. They are ordered by SCOPE.     *      * <P>     * Each column description has the following columns:     *      * <OL>     * <li>     * <B>SCOPE</B> short => actual scope of result     *      * <UL>     * <li>     * bestRowTemporary - very temporary, while using row     * </li>     * <li>     * bestRowTransaction - valid for remainder of current transaction     * </li>     * <li>     * bestRowSession - valid for remainder of current session     * </li>     * </ul>     *      * </li>     * <li>     * <B>COLUMN_NAME</B> String => column name     * </li>     * <li>     * <B>DATA_TYPE</B> short => SQL data type from java.sql.Types     * </li>     * <li>     * <B>TYPE_NAME</B> String => Data source dependent type name     * </li>     * <li>     * <B>COLUMN_SIZE</B> int => precision     * </li>     * <li>     * <B>BUFFER_LENGTH</B> int => not used     * </li>     * <li>     * <B>DECIMAL_DIGITS</B> short  => scale     * </li>     * <li>     * <B>PSEUDO_COLUMN</B> short => is this a pseudo column like an Oracle     * ROWID     *      * <UL>     * <li>     * bestRowUnknown - may or may not be pseudo column     * </li>     * <li>     * bestRowNotPseudo - is NOT a pseudo column     * </li>     * <li>     * bestRowPseudo - is a pseudo column     * </li>     * </ul>     *      * </li>     * </ol>     * </p>     *     * @param catalog a catalog name; "" retrieves those without a catalog     * @param schema a schema name; "" retrieves those without a schema     * @param table a table name     * @param scope the scope of interest; use same values as SCOPE     * @param nullable include columns that are nullable?     *     * @return ResultSet each row is a column description     *     * @throws java.sql.SQLException DOCUMENT ME!     */    public java.sql.ResultSet getBestRowIdentifier(String catalog,        String schema, String table, int scope, boolean nullable)        throws java.sql.SQLException {        Field[] fields = new Field[8];        fields[0] = new Field("", "SCOPE", Types.SMALLINT, 5);        fields[1] = new Field("", "COLUMN_NAME", Types.CHAR, 32);        fields[2] = new Field("", "DATA_TYPE", Types.SMALLINT, 32);        fields[3] = new Field("", "TYPE_NAME", Types.CHAR, 32);        fields[4] = new Field("", "COLUMN_SIZE", Types.INTEGER, 10);        fields[5] = new Field("", "BUFFER_LENGTH", Types.INTEGER, 10);        fields[6] = new Field("", "DECIMAL_DIGITS", Types.INTEGER, 10);        fields[7] = new Field("", "PSEUDO_COLUMN", Types.SMALLINT, 5);        String databasePart = "";        if (catalog != null) {            if (!catalog.equals("")) {                databasePart = " FROM " + this.quotedId + catalog                    + this.quotedId;            }        } else {            databasePart = " FROM " + this.quotedId + this.database                + this.quotedId;        }        if (table == null) {            throw new java.sql.SQLException("Table not specified.", SQLError.SQL_STATE_ILLEGAL_ARGUMENT);        }        ResultSet results = null;        Statement stmt = null;        try {            stmt = this.conn.createStatement();			if (stmt.getMaxRows() != 0) {				stmt.setMaxRows(0);			}			            StringBuffer queryBuf = new StringBuffer("SHOW COLUMNS FROM ");            queryBuf.append(this.quotedId);            queryBuf.append(table);            queryBuf.append(this.quotedId);            queryBuf.append(databasePart);            results = stmt.executeQuery(queryBuf.toString());            ArrayList tuples = new ArrayList();            while (results.next()) {                String keyType = results.getString("Key");                if (keyType != null) {                    if (StringUtils.startsWithIgnoreCase(keyType, "PRI")) {                        byte[][] rowVal = new byte[8][];                        rowVal[0] = Integer.toString(java.sql.DatabaseMetaData.bestRowSession)                                           .getBytes();                        rowVal[1] = results.getBytes("Field");                        String type = results.getString("Type");                        int size = MysqlIO.getMaxBuf();                        int decimals = 0;                        /*                         * Parse the Type column from MySQL                         */                        if (type.indexOf("enum") != -1) {                            String temp = type.substring(type.indexOf("("),                                    type.indexOf(")"));                            java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(temp,                                    ",");                            int maxLength = 0;                            while (tokenizer.hasMoreTokens()) {                                maxLength = Math.max(maxLength,                                        (tokenizer.nextToken().length() - 2));                            }                            size = maxLength;                            decimals = 0;                            type = "enum";                        } else if (type.indexOf("(") != -1) {                            if (type.indexOf(",") != -1) {                                size = Integer.parseInt(type.substring(type                                            .indexOf("(") + 1, type.indexOf(",")));                                decimals = Integer.parseInt(type.substring(type                                            .indexOf(",") + 1, type.indexOf(")")));                            } else {                                size = Integer.parseInt(type.substring(type                                            .indexOf("(") + 1, type.indexOf(")")));                            }                            type = type.substring(type.indexOf("("));                        }                        rowVal[2] = new byte[0]; // FIXME!                        rowVal[3] = s2b(type);                        rowVal[4] = Integer.toString(size + decimals).getBytes();                        rowVal[5] = Integer.toString(size + decimals).getBytes();                        rowVal[6] = Integer.toString(decimals).getBytes();                        rowVal[7] = Integer.toString(java.sql.DatabaseMetaData.bestRowNotPseudo)                                           .getBytes();                        tuples.add(rowVal);                    }                }            }            return buildResultSet(fields, tuples);        } finally {            if (results != null) {                try {                    results.close();                } catch (Exception ex) {                    ;                }                results = null;            }            if (stmt != null) {                try {                    stmt.close();                } catch (Exception ex) {                    ;                }                stmt = null;            }        }    }    /**     * Does a catalog appear at the start of a qualified table name? (Otherwise     * it appears at the end)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久久动态图 | 暴力调教一区二区三区| 99国产精品久久久| 日韩你懂的在线观看| 亚洲一区在线播放| 91香蕉国产在线观看软件| 日韩一级片在线播放| 亚洲午夜视频在线观看| 夫妻av一区二区| 精品国产人成亚洲区| 五月天久久比比资源色| 91麻豆国产福利在线观看| 国产婷婷色一区二区三区在线| 亚洲国产综合在线| 色欧美乱欧美15图片| 欧美国产一区二区| 国产精品资源在线| 精品成a人在线观看| 亚洲线精品一区二区三区 | 日韩码欧中文字| 麻豆国产91在线播放| 欧美日韩视频在线第一区| 中文字幕在线不卡一区| 不卡欧美aaaaa| 久久精品日产第一区二区三区高清版| 男男视频亚洲欧美| 制服丝袜日韩国产| 天天综合色天天综合| 欧美顶级少妇做爰| 日韩va亚洲va欧美va久久| 欧美日韩精品综合在线| 亚洲成在线观看| 欧美三级日韩三级| 亚洲va欧美va人人爽| 欧美人狂配大交3d怪物一区| 亚洲成人av中文| 91精品福利在线一区二区三区 | 91精品国产一区二区| 日韩成人一区二区| 日韩亚洲欧美一区二区三区| 日本成人在线电影网| 精品国产伦一区二区三区观看体验| 日本美女一区二区三区视频| 日韩欧美第一区| 国产乱码精品1区2区3区| 国产色婷婷亚洲99精品小说| 成人免费看片app下载| 亚洲精品国产高清久久伦理二区| 一本一本久久a久久精品综合麻豆| 亚洲三级视频在线观看| 欧美主播一区二区三区美女| 丝袜国产日韩另类美女| 欧美成人一区二区三区| 国产成人啪午夜精品网站男同| 国产精品视频麻豆| 在线观看欧美黄色| 免费视频一区二区| 中文字幕中文字幕一区二区| 在线观看区一区二| 国产综合一区二区| 亚洲欧美日韩国产综合在线| 91精品国产综合久久久久久久| 国产一区二区毛片| 亚洲色图在线视频| 日韩免费在线观看| 91在线观看视频| 麻豆精品新av中文字幕| 国产精品色噜噜| 777欧美精品| 成人av网址在线观看| 亚洲成人自拍偷拍| 中文字幕不卡三区| 欧美一区二区在线免费播放| yourporn久久国产精品| 日韩成人一级大片| 一区二区三区在线高清| 久久精品一区八戒影视| 欧美午夜影院一区| eeuss鲁一区二区三区| 美女视频免费一区| 亚洲自拍偷拍图区| 欧美国产激情二区三区| 日韩一卡二卡三卡| 欧美在线免费观看亚洲| 不卡一区二区中文字幕| 九九在线精品视频| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久久岛一牛影视 | 日韩一区欧美小说| 久久精品视频网| 91精品国产丝袜白色高跟鞋| 色噜噜狠狠成人中文综合| 国产一二三精品| 秋霞av亚洲一区二区三| 亚洲国产一区二区三区| 国产精品水嫩水嫩| 国产日韩三级在线| 日韩精品一区二区三区在线播放| 色88888久久久久久影院野外| 国产成人aaa| 国产成人免费在线视频| 国产一区二区三区国产| 免费成人美女在线观看.| 天天影视涩香欲综合网| 亚洲一二三四区不卡| 伊人色综合久久天天人手人婷| 中文字幕不卡一区| 国产亚洲精品福利| 2023国产一二三区日本精品2022| 欧美一区二区大片| 日韩午夜激情av| 欧美一区二区三级| 日韩欧美一级精品久久| 日韩精品自拍偷拍| 精品日韩在线观看| wwwwxxxxx欧美| 久久精品视频一区二区| 国产欧美一区二区精品久导航| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲六月丁香色婷婷综合久久| 亚洲色图视频网站| 亚洲裸体在线观看| 亚洲一区二区三区美女| 亚洲成a人在线观看| 日本亚洲电影天堂| 精品亚洲成a人| 国产1区2区3区精品美女| 不卡在线视频中文字幕| 日本电影亚洲天堂一区| 欧美群妇大交群的观看方式| 欧美一级精品大片| 久久久精品免费免费| 国产精品第四页| 亚洲在线视频网站| 青娱乐精品在线视频| 国产传媒一区在线| 色综合天天天天做夜夜夜夜做| 欧洲人成人精品| 欧美一区二区三区在线| 国产区在线观看成人精品 | 一本一道综合狠狠老| 欧美一区二区在线免费播放| 久久久蜜桃精品| 一区二区三区精品视频| 激情成人午夜视频| 97成人超碰视| 在线电影欧美成精品| 国产三级精品视频| 一区二区三区国产| 国产一区啦啦啦在线观看| 日本道在线观看一区二区| 欧美成人vr18sexvr| 一区二区三区产品免费精品久久75| 首页国产欧美日韩丝袜| 成人av集中营| 91精品国产欧美一区二区18 | 爽好多水快深点欧美视频| 国产成人精品三级| 欧美日韩dvd在线观看| 亚洲国产精品黑人久久久| 午夜a成v人精品| 成人高清视频在线观看| 日韩午夜激情视频| 亚洲一区自拍偷拍| 丁香桃色午夜亚洲一区二区三区| 精品婷婷伊人一区三区三| 欧美国产禁国产网站cc| 久久99国产精品久久99果冻传媒| 91免费国产在线| 国产亚洲精品bt天堂精选| 男女男精品视频网| 欧美日韩一级片网站| 亚洲色图欧美在线| 国产福利91精品一区二区三区| 日韩手机在线导航| 天堂va蜜桃一区二区三区| 一本大道久久a久久综合婷婷 | av综合在线播放| 国产欧美一区二区三区鸳鸯浴| 日韩精品久久久久久| 欧亚洲嫩模精品一区三区| 国产精品免费免费| 国产精品综合在线视频| 欧美成人精品二区三区99精品| 午夜精品爽啪视频| 在线这里只有精品| 亚洲欧美日韩中文字幕一区二区三区| 国产酒店精品激情| 26uuu色噜噜精品一区二区| 美女网站在线免费欧美精品| 69堂精品视频| 亚洲午夜激情网站| 在线视频国内一区二区| 综合分类小说区另类春色亚洲小说欧美 | 亚洲福利电影网| 欧美日韩一本到| 亚洲丰满少妇videoshd| 欧美精品1区2区| 日韩电影免费一区| 日韩精品一区二区三区在线播放|