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

📄 databaseinformation.java

📁 一个用java写的开源的数据库系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    // fredt - don't report primary key on hidden column                    if (cols[0] == table.getColumnCount()) {                        continue;                    }                    int len = cols.length;                    for (int j = 0; j < len; j++) {                        Object o[] = t.getNewRow();                        o[0] = o[1] = "";                        o[2] = table.getName().name;                        o[3] = table.getColumn(cols[j]).columnName.name;                        o[4] = new Integer((j + 1));                        o[5] = index.getName().name;                        t.insert(o, null);                    }                }                return t;            }            case SYSTEM_IMPORTEDKEYS :            case SYSTEM_EXPORTEDKEYS :            case SYSTEM_CROSSREFERENCE :                return getCrossReference(name, session);            case SYSTEM_TYPEINFO : {                t.addColumn("TYPE_NAME", Types.VARCHAR);                t.addColumn("DATA_TYPE", Types.SMALLINT);                t.addColumn("PRECISION", Types.INTEGER);                t.addColumn("LITERAL_PREFIX", Types.VARCHAR);                t.addColumn("LITERAL_SUFFIX", Types.VARCHAR);                t.addColumn("CREATE_PARAMS", Types.VARCHAR);                t.addColumn("NULLABLE", Types.SMALLINT);                t.addColumn("CASE_SENSITIVE", Types.BIT);                t.addColumn("SEARCHABLE", Types.SMALLINT);                t.addColumn("UNSIGNED_ATTRIBUTE", Types.BIT);                t.addColumn(META_FIXED_PREC_SCALE, Types.BIT);                t.addColumn("AUTO_INCREMENT", Types.BIT);                t.addColumn("LOCAL_TYPE_NAME", Types.VARCHAR);                t.addColumn("MINIMUM_SCALE", Types.SMALLINT);                t.addColumn("MAXIMUM_SCALE", Types.SMALLINT);                t.addColumn("SQL_DATE_TYPE", Types.INTEGER);                t.addColumn("SQL_DATETIME_SUB", Types.INTEGER);                t.addColumn("NUM_PREC_RADIX", Types.INTEGER);                t.createPrimaryKey();                for (int h = 0; h < Column.typesArray.length; h++) {                    for (int i = 0; i < Column.typesArray[h].length; i++) {                        Object o[]  = t.getNewRow();                        int    type = Column.typesArray[h][i];                        o[0] = Column.getTypeString(type);                        o[1] = new Integer(type);                        o[2] = INTEGER_0;             // precision                        o[6] = new Integer(DatabaseMetaData.typeNullable);                        o[7] = new Boolean(true);     // case sensitive                        o[8] = new Integer(DatabaseMetaData.typeSearchable);                        o[9] = new Boolean(false);    // unsigned                        o[10] = new Boolean(type == Types.NUMERIC                                            || type == Types.DECIMAL);                        o[11] = new Boolean(type == Types.INTEGER);                        o[12] = o[0];                        o[13] = INTEGER_0;                        o[14] = INTEGER_0;            // maximum scale                        o[17] = new Integer(10);                        t.insert(o, null);                    }                }                return t;            }            case SYSTEM_INDEXINFO : {                t.addColumn("TABLE_" + META_CAT, Types.VARCHAR);                t.addColumn("TABLE_" + META_SCHEM, Types.VARCHAR);                t.addColumn("TABLE_NAME", Types.VARCHAR);                t.addColumn("NON_UNIQUE", Types.BIT);                t.addColumn("INDEX_QUALIFIER", Types.VARCHAR);                t.addColumn("INDEX_NAME", Types.VARCHAR);                t.addColumn("TYPE", Types.SMALLINT);                t.addColumn(META_ORDINAL_POSITION, Types.SMALLINT);                t.addColumn("COLUMN_NAME", Types.VARCHAR);                t.addColumn(META_ASC_OR_DESC, Types.VARCHAR);                t.addColumn("CARDINALITY", Types.INTEGER);                t.addColumn("PAGES", Types.INTEGER);                t.addColumn("FILTER_CONDITION", Types.VARCHAR);                t.createPrimaryKey();                for (int i = 0, tSize = tTable.size(); i < tSize; i++) {                    Table table = (Table) tTable.elementAt(i);                    for (int j = 0; j < table.getIndexCount(); j++) {                        Index index  = table.getIndex(j);                        int   cols[] = index.getColumns();                        int   len    = index.getVisibleColumns();                        if (len == 0) {                            continue;                        }                        for (int k = 0; k < len; k++) {                            Object o[] = t.getNewRow();                            o[0] = o[1] = "";                            o[2] = table.getName().name;                            o[3] = new Boolean(!index.isUnique());                            o[5] = index.getName().name;                            o[6] = new Integer(                                DatabaseMetaData.tableIndexOther);                            o[7] = new Integer(k + 1);                            o[8] = table.getColumn(cols[k]).columnName.name;                            o[9] = "A";                            t.insert(o, null);                        }                    }                }                return t;            }            case SYSTEM_UDTS : {                t.addColumn("TYPE_" + META_CAT, Types.VARCHAR);                t.addColumn("TYPE_" + META_SCHEM, Types.VARCHAR);                t.addColumn("TYPE_NAME", Types.VARCHAR);                t.addColumn("CLASS_NAME", Types.BIT);                t.addColumn("DATA_TYPE", Types.VARCHAR);                t.addColumn("REMARKS", Types.VARCHAR);// boucherb@users 20020415 added for JDBC 3 clients                t.addColumn("BASE_TYPE ", Types.SMALLINT);                t.createPrimaryKey();                return t;            }            case SYSTEM_CONNECTIONINFO : {                t.addColumn("KEY", Types.VARCHAR);                t.addColumn("VALUE", Types.VARCHAR);                t.createPrimaryKey();                Object o[] = t.getNewRow();                o[0] = "USER";                o[1] = session.getUsername();                t.insert(o, null);                o    = t.getNewRow();                o[0] = "READONLY";                o[1] = session.isReadOnly() ? "TRUE"                                            : "FALSE";                t.insert(o, null);                o    = t.getNewRow();                o[0] = "MAXROWS";                o[1] = String.valueOf(session.getMaxRows());                t.insert(o, null);                o    = t.getNewRow();                o[0] = "DATABASE";                o[1] = session.getDatabase().getName();                t.insert(o, null);                o    = t.getNewRow();                o[0] = "IDENTITY";                o[1] = String.valueOf(session.getLastIdentity());                t.insert(o, null);                return t;            }            case SYSTEM_USERS : {                t.addColumn("USER", Types.VARCHAR);                t.addColumn("ADMIN", Types.BIT);                t.createPrimaryKey();                Vector v = aAccess.getUsers();                for (int i = 0, vSize = v.size(); i < vSize; i++) {                    User u = (User) v.elementAt(i);                    // todo: this is not a nice implementation                    if (u == null) {                        continue;                    }                    String user = u.getName();                    if (!user.equals("PUBLIC")) {                        Object o[] = t.getNewRow();                        o[0] = user;                        o[1] = new Boolean(u.isAdmin());                        t.insert(o, null);                    }                }                return t;            }            default :                return null;        }    }    static final Short importedKeyNoActionShort =        new Short((short) DatabaseMetaData.importedKeyNoAction);    static final Short importedKeyCascadeShort =        new Short((short) DatabaseMetaData.importedKeyCascade);    static final Short importedKeyNotDeferrableShort =        new Short((short) DatabaseMetaData.importedKeyNotDeferrable);    Table getCrossReference(HsqlName name,                            Session session) throws SQLException {        Table t = createTable(name);        t.addColumn("PKTABLE_" + META_CAT, Types.VARCHAR);        t.addColumn("PKTABLE_" + META_SCHEM, Types.VARCHAR);        t.addColumn("PKTABLE_NAME", Types.VARCHAR);        t.addColumn("PKCOLUMN_NAME", Types.VARCHAR);        t.addColumn("FKTABLE_" + META_CAT, Types.VARCHAR);        t.addColumn("FKTABLE_" + META_SCHEM, Types.VARCHAR);        t.addColumn("FKTABLE_NAME", Types.VARCHAR);        t.addColumn("FKCOLUMN_NAME", Types.VARCHAR);        t.addColumn("KEY_SEQ", Types.SMALLINT);        t.addColumn("UPDATE_RULE", Types.SMALLINT);        t.addColumn("DELETE_RULE", Types.SMALLINT);        t.addColumn("FK_NAME", Types.VARCHAR);        t.addColumn("PK_NAME", Types.VARCHAR);        t.addColumn("DEFERRABILITY", Types.SMALLINT);        t.createPrimaryKey();        for (int i = 0, tSize = tTable.size(); i < tSize; i++) {            Table      table     = (Table) tTable.elementAt(i);            Vector     constVect = table.getConstraints();            Constraint constraint;            for (int j = 0; j < constVect.size(); j++) {                constraint = (Constraint) constVect.elementAt(j);                if (constraint.getType() != Constraint.FOREIGN_KEY) {                    continue;                }                String mainTableName = constraint.getMain().tableName.name;                String refTableName  = constraint.getRef().tableName.name;                if (dDatabase.findUserTable(mainTableName) == null                        || dDatabase.findUserTable(refTableName) == null) {                    continue;                }                int pkcols[] = constraint.getMainColumns();                int fkcols[] = constraint.getRefColumns();                int len      = pkcols.length;                for (int k = 0; k < len; k++) {                    Object o[] = t.getNewRow();                    o[0] = o[1] = "";                    o[2] = mainTableName;                    o[3] = constraint.getMain().getColumn(                        pkcols[k]).columnName.name;                    o[4] = o[5] = "";                    o[6] = refTableName;                    o[7] = constraint.getRef().getColumn(                        fkcols[k]).columnName.name;                    o[8]  = new Short((short) (k + 1));                    o[9]  = importedKeyNoActionShort;                    o[10] = constraint.isCascade() ? importedKeyCascadeShort                                                   : importedKeyNoActionShort;                    o[11] = constraint.getFkName();                    o[12] = constraint.getPkName();                    o[13] = importedKeyNotDeferrableShort;                    t.insert(o, null);                }            }        }        return t;    }    /**     * Method declaration     *     *     * @param name     *     * @return     */    private Table createTable(HsqlName name) throws SQLException {        return new Table(dDatabase, name, Table.SYSTEM_TABLE, null);    }}

⌨️ 快捷键说明

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