DatabaseMetaData.getIndexInfo

DatabaseMetaData.getIndexInfo示例通过DatabaseMetaData.getIndexInfo()获取索引信息。publicstaticvoidgetIndexInfo()throwsException{Connectionconn=getConnection();ResultSetrs=null;try{

大家好,又见面了,我是你们的朋友全栈君。

示例

通过 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: 如果发生数据库访问错误

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150975.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 谈谈唯一约束和唯一索引的关系_唯一约束和主键约束的一个区别是

    谈谈唯一约束和唯一索引的关系_唯一约束和主键约束的一个区别是最近在看数据库相关知识,感觉唯一约束和唯一索引好像有点类似,于是研究了一番,于是就有了这篇文章。概念开始之前,先解释一下约束和索引。约束全称完整性约束,它是关系数据库中的对象,用来存放插入到一个表中一列数据的规则,用来确保数据的准确性和一致性。索引数据库中用的最频繁的操作是数据查询,索引就是为了加速表中数据行的检索而创建的一种分散的数据结构。可以把索引类比成书的目录,有目录…

    2022年9月20日
    0
  • opencv高斯金字塔_高斯求和公式

    opencv高斯金字塔_高斯求和公式一、图像金字塔图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像。把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺寸)逐渐降低的图像,一直到金字塔的顶部只包含一个像素点的图像,这就构成了传统意义上的图像金字塔。获得图像金字塔一般包括二个步骤:1.利用低通滤波器平滑图像 2.对平

    2022年10月15日
    0
  • iBATIS_ibatis

    iBATIS_ibatis1、ibatis中isNotEmpty的作用   &lt;selectid="getCityListByProvinceId"parameterClass="simpleMap"resultClass="dictModel"&gt;  &lt;![CDATA[   selectxiddictCode,xnamedictNamefromcity  ]]&gt;    &l…

    2022年10月7日
    0
  • 嵌入式实时操作系统UCOSII[通俗易懂]

    嵌入式实时操作系统UCOSII[通俗易懂]何谓操作系统1.什么是操作系统?操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。介于APP和硬件之间。2. 为什么要用操作系统?1)相比裸机,可以实现更加复杂的功能。2)屏蔽硬件。使得上层应用APP的移植性更好。常见操作系统常见操作系统安卓、IOS、Windows、Linux、塞班、V…

    2022年5月4日
    165
  • linux加静态路由命令,LINUX添加静态路由「建议收藏」

    linux加静态路由命令,LINUX添加静态路由「建议收藏」LINUX添加静态路由建议,先用命令添加,测试生效未有其他影响后,添加到配置文件中。以本次127前置添加静态路由为例用户需要添加路由如下,命令格式为windows添加格式。route-a-p10.113.70.0mask255.255.255.010.113.65.44route-a-p10.113.70.240mask255.255.255.24010.113.6…

    2022年10月4日
    0
  • java判断一个对象是否为空_Java中判断对象是否为空的方法的详解

    java判断一个对象是否为空_Java中判断对象是否为空的方法的详解首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:StringUtils.isEmpty(CharSequencecs);//org.apache.commons.lang3包下的StringUtils类,判…

    2022年5月28日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号