获取数据库信息

 数据库信息包括数据库详细信息、数据库基本信息、基本表信息、列信息等内容

1、获取数据库详细信息

      DatabaseMetaData对象代表了一个数据库的详细信息,它的方法所获取的数据库系统的信息通常用ResultSet对象的开工返回,可以用ResultSet对象的方法取得数据信息,如getString, getInt等。当返回的数据不可用时,调用ResultSet对象的方法通常会抛出SQLException例外。

//创建DatabaseMetaData
//con为一个Connection对象

DatabaseMetaData dbmd=con.getMetaData();

2、获取数据库基本信息

     数据库的基本信息包括JDBC驱动程序名字、数据库表的最大列数、列名的最大字符数等信息。

    1)getBestRowIdentifier   :获取一个数据库中用来唯一标识一个表的列的最佳集合的描述 

//语法
ResultSet getBestRowIdentifier (String catalog, String schema, String table, int scope, Boolean nullable) throws SQLException

       参数说明:

       catalog: 一个代表目录名的字符串,“”代表程序要获取没有catalog的数据库的信息, null则代表了把catalog从选项中除去

       schema:一个代表模式名的字符串

       table: 代表了一个表名的字符串

      scope: 有三种范围,分别是bestRowTemporary, bestRowTransaction, bestRowSession

      nullable:如果这个参数为true, 那么就表示结果中要包含那些列为空的值,否则就除去这些列

      该函数的返回值是一个ResultSet对象,每一行都是对一个列的描述,对返回值中的每一个列的描述包括下述几种:

      a) scope的作用是指出结果集生效的范围,有以下几种选择:

           bestRowTemporary: 只有在使用这个行的时候才生效,有限期非常短

           bestRowTransaction:在整个事务中都有效

           bestRowSession: 在整个会话中都有效

     b) column_name作用 给出列的名称

    c) data_type的功能是指出可用的数据类型

     d) type_name将给出数据源所使用的类型名

     e) column_size将给出列的精度

     f) Buffer_length这是一个暂未使用的值

    g) pseudo_column指出该列是否是数据库系统产生的列

        bestRowUnknow: 可能是pseudo列

        bestRowNotPseudo: 不是数据库系统产生的列

        bestRowPseudo: 是数据库系统产生的列

//
ResultSet rs=dbmd.getBestRowIdentifier(null"SYSTEM""NEW"1true);

  2) getTypeInfo: 获取一个数据库系统支持的所有数据类型,每一行都是对一个数据类型的描述返回的每行包括如下的列:

// 语法
ResultSet getTypeInfo()  throws  SQLException

 

       a) type_name: 数据类型名

       b) data_type: 短整型的数,指出在JDBC中映射到本地DBMS数据类型最为合适的数据类型

       c) precision: 整型数,指出最大的精度

       d) literal_prefix: 可能引用的文字前缀,可能为null

      e) literal_suffix: 可能用来引用一个文字的后缀, 可以为null

      f) create_params: 创建这种数据类型所用的参数, 可以为空

      g) nullable: 指出一个列是否可以为空, 可能值为:

            typeNoNulls 不允许为空

            typeNullable可以为空

           typeNullableUnknown不知道是否可以为空

      h) case_sensitive: 如果为真, 则说明这种类型是大小写敏感的

      i) searchable: 指出是否可以在where条件语句中使用这种类型,有以下值:

              typePreNone: 不可以在where中

             typePredChar: 只可以用于where...like语句中

              typePredBasic: 除了where....like语句外所有where语句中都可以使用这种数据类型

             typeSearchable: 所有where语句都可以使用这种数据类型

       j) unsigned_attribute: 如果为true,则这种数据类型是无符号的

       k) fixed_prec_scale: 如果为true, 则这种数据类型可以为货币类型

        l) auto_increment: 为true则说明这是一个可以自动增加值的类型

        m)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值