DatabaseMetaData.getIndexInfo

示例

通过 DatabaseMetaData.getIndexInfo() 获取索引信息。

public static void getIndexInfo() throws Exception {
        Connection conn = getConnection();
        ResultSet rs = null;
        try {
            DatabaseMetaData dbmd = conn.getMetaData();
            rs = dbmd.getIndexInfo("test", "test", "uspider_task", false, false);
            ResultSetMetaData md = rs.getMetaData();
            while (rs.next()) {
                for (int i = 1; i <= md.getColumnCount(); i++) {
                    System.out.println(md.getColumnName(i) + "==" + rs.getObject(i));
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            conn.close();
        }
    }

输出信息如下:

TABLE_CAT==test
TABLE_SCHEM==null
TABLE_NAME==uspider_task
NON_UNIQUE==false
INDEX_QUALIFIER==
INDEX_NAME==PRIMARY
TYPE==3
ORDINAL_POSITION==1
COLUMN_NAME==task_id
ASC_OR_DESC==A
CARDINALITY==0
PAGES==0
FILTER_CONDITION==null

Api 说明

ResultSet getIndexInfo(String catalog,
                       String schema,
                       String table,
                       boolean unique,
                       boolean approximate)
                       throws SQLException
参数:
  • catalog : 类别名称,因为存储在此数据库中,所以它必须匹配类别名称。该参数为 “” 则检索没有类别的描述,为 null 则表示该类别名称不应用于缩小搜索范围
  • schema : 模式名称,因为存储在此数据库中,所以它必须匹配模式名称。该参数为 “” 则检索那些没有模式的描述,为 null 则表示该模式名称不应用于缩小搜索范围
  • table : 表名称,因为存储在此数据库中,所以它必须匹配表名称
  • unique : 该参数为 true 时,仅返回惟一值的索引;该参数为 false 时,返回所有索引,不管它们是否惟一
  • approximate : 该参数为 true 时,允许结果是接近的数据值或这些数据值以外的值;该参数为 false 时,要求结果是精确结果

检索给定表的索引和统计信息的描述。它们根据 NON_UNIQUE、TYPE、INDEX_NAME 和 ORDINAL_POSITION 进行排序。
每个索引列描述都有以下列:

  • TABLE_CAT String => 表类别(可为 null)
  • TABLE_SCHEM String => 表模式(可为 null)
  • TABLE_NAME String => 表名称
  • NON_UNIQUE boolean => 索引值是否可以不惟一。TYPE 为 tableIndexStatistic 时索引值为 false
  • INDEX_QUALIFIER String => 索引类别(可为 null);TYPE 为 tableIndexStatistic 时索引类别为 null
  • INDEX_NAME String => 索引名称;TYPE 为 tableIndexStatistic 时索引名称为 null
  • TYPE short => 索引类型:
  • tableIndexStatistic - 此标识与表的索引描述一起返回的表统计信息
  • tableIndexClustered - 此为集群索引
  • tableIndexHashed - 此为散列索引
  • tableIndexOther - 此为某种其他样式的索引
  • ORDINAL_POSITION short => 索引中的列序列号;TYPE 为 tableIndexStatistic 时该序列号为零
  • COLUMN_NAME String => 列名称;TYPE 为 tableIndexStatistic 时列名称为 null
  • ASC_OR_DESC String => 列排序序列,”A” => 升序,”D” => 降序,如果排序序列不受支持,可能为 null;TYPE 为 tableIndexStatistic 时排序序列为 null
  • CARDINALITY int => TYPE 为 tableIndexStatistic 时,它是表中的行数;否则,它是索引中惟一值的数量。
  • PAGES int => TYPE 为 tableIndexStatisic 时,它是用于表的页数,否则它是用于当前索引的页数。
  • FILTER_CONDITION String => 过滤器条件,如果有的话。(可能为 null)
返回:
  • ResultSet: 每一行都是一个索引列描述
    抛出:
  • SQLException: 如果发生数据库访问错误

想了解更多精彩内容请关注我的公众号

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: databasemetadata.gettables是Java中的一个方法,用于获取数据库中的所有表的元数据信息。该方法返回一个ResultSet对象,其中包含了表名、表类型、表所属的模式等信息。使用该方法可以方便地获取数据库中的所有表信息,以便进行后续的操作。 ### 回答2: databasemetadata.gettables是Java编程语言中DatabaseMetaData接口的一个方法,用于返回一个ResultSet对象,包含了指定的数据库中所有的表、视图或系统表的信息。这个方法需要一个参数catalog,它是一个String类型的参数,代表目录名(可能为空),如果catalog参数为null,则只返回没有目录的表,如果catalog参数不为null,则返回属于该目录的所有表。 返回的ResultSet对象中包含了下列列: - TABLE_CAT:String类型,代表列所在的目录(可能为空); - TABLE_SCHEM:String类型,代表列所在的架构(可能为空); - TABLE_NAME:String类型,代表表的名称; - TABLE_TYPE:String类型,代表表的类型,其可能的值有:"TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS"、"SYNONYM"; - REMARKS:String类型,代表对表的描述(可能为空); - TYPE_CAT:String类型,代表表的类型所在的目录(可能为空); - TYPE_SCHEM:String类型,代表表的类型所在的架构(可能为空); - TYPE_NAME:String类型,代表表的类型名称(可能为空); - SELF_REFERENCING_COL_NAME:String类型,代表表中的指向自身的外键列(可能为空); - REF_GENERATION:String类型,代表创建外键时如何生成这些外键的值,其可能的值有:"SYSTEM"、"USER"、"DERIVED"。 这个方法可以极大地方便Java程序员获取数据库中的所有表、视图或系统表的信息,包括它们的名称、类型、相关的目录和架构等等,自此进一步提高了程序的可读性和可维护性。这个方法适用于几乎所有的Java平台,包括Java SE、Java EE、Java ME、JavaFX等等。 ### 回答3: databasemetadata.gettables是一个Java API,它允许Java开发人员从数据库元数据中获取关于表格和相关信息的详细信息。 该API可以帮助Java开发人员在运行时直接访问数据库,并了解其中的表格、视图、存储过程、函数等信息。比如可以通过该API来获取表格名、列名、列数据类型、主键信息、外键信息等。 在使用gettables方法时,需要用到DatabaseMetadata对象,这个对象通常是通过Connection对象获取的。所以,在获取表格信息之前,需要先建立数据库连接。 gettables方法中可以设置一些参数来筛选需要的表格信息,例如可以设置catalog、schema、tableNamePattern等等。其中,catalog和schema用于选择特定的数据库和模式;tableNamePattern则可以用于匹配表格名,例如可以使用通配符来选择需要的表格。 使用databasemetadata.gettables可以方便地获得数据库中的表格信息,而且该API支持大多数的数据库,如MySQL、Oracle、Microsoft SQL Server等。这些信息对于Java开发人员来说具有十分重要的意义,为程序的开发和运行提供了帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值