编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

JDBC获取数据库信息:DatabaseMetaData获取数据库基本信息

数据库的基本信息包括数据库名,数据库支持的数据类型、数据库表的最大列数等。以下是常用的获取数据库信息的方法。

String getDriverName() throws SQLException

获取当前JDBC驱动程序的名字

String getDriverVersion() throws SQLException

获取当前JDBC驱动程序的版本

String getUserName()throws SQLException

获取用户名

int getMaxConnections() throws SQLException

获得一个驱动程序实例可以支持的最多的可以连接数据库的用户数。

int getMaxColumnInTable() throws SQLException

获得数据库一个表中所允许的最多的列数

String getSQLKeywords() throws SQLException

获得数据库中SQL语句的关键字

ResultSet getCatalogs() throws SQLException

获得数据库中可用的目录名,返回结果是一个结果集,其中每个数据行代表当前数据库中可用的一个目录名

ResultSet  getProcedures(String catalog,String schemaPattern,String procedureNamePattern) throws SQLException

获得对目录catalog中可用的存储过程的描述

参数说明:

  1. Catalog:表示目录名
  2. SchemaPattern:表示模式名类型
  3. ProcedureNamePattern:表示过程名类型

函数返回值是一个结果集,其中每个数据行包含对一个存储过程的描述。对存储过程的描述包括以下几个方面:

  1. PROCEDURE_CAT 表示存储过程所属目录名
  2. PROCEDURE_SCHEME 表示过程模式
  3. PROCEDURE_NAME 表示存储过程名
  4. PROCEDURE_TYPE 表示当前存储过程的类型,可能的取值有:
    • procedureResultUnknow——过程可能返回一个结果集
    • procedureNoResult——过程不会返回一个结果
    • procedureReturnsResult——过程返回一个结果
ResultSet getTypeInfo() throws SQLException

获取一个数据库系统支持的所有的数据类型,返回值是一个结果集,每一行都是对一个数据库类型的描述。在data_type列中的是JDBC的SQL数据类型,是对本地DBMS数据类型的最好描述。

函数返回的结果集按data_type列 排列,如果两行在data_type列上有相同的值,那么第一行就给出用JDBC访问数据库的最符合本地DBMS的数据类型。

返回的每行包括如下列:

  1. Type_name 数据类型名
  2. Data_type short型整数,指出在JDBC中映射到本地DBMS数据类型最为合适的数据类型。如果在jdbc中有多个类型适合本地的数据库,那么第一列被认为是最合适的。
  3. Precision 整型数,指出最大的精度。
  4. Literal_prefix 可以用来引用的文字前缀,可以为null
  5. Literal_suffix 可以用来引用的文字的后缀,可以为null
  6. Create_params 创建这种数据类型所用的参数,可以为null
  7. Nullable 支出一个列是否可以为空,可能值为:
    • typeNoNull 不允许为空
    • typeNullable 可以为空
    • typeNullableUnknown 不知为是否可以为空
  8. case_sensitive 如果我真,则说明这种类型是区分大小写,反之则是不区分的
  9. searchable 支出是否可以在where条件句中使用这种类型,有以下的可能值:
    • typePreNone不可以用在where中
    • typePredChar 只可以用于where…like语句中
    • typePredBasic 除了where…like语句外所有where语句都可以使用这种数据类型
    • typeSearchable 所有where语句都可以使用这种数据类型
  10. unsigned_attribute 如果为true,则这种数据类型是无符号的。
  11. Fixed_prec_scale 如果为ture,则这种数据类型可以为货币类型
  12. Auto_increment 如果为ture,则说明这是一个可以自动增加值的类型
  13. Local_type_name 被本地化了的数据类型名。
  14. Minimum_scale 支持的最小精度
  15. Maximum_scale 支持的最大精度
  16. Sql_data_type 未使用
  17. Sql_datatime_sub 未使用
未经允许不得转载: 技术文章 » Java编程 » JDBC获取数据库信息:DatabaseMetaData获取数据库基本信息