DatabaseMetaData获取数据库信息
2012-01-10 14:18
369 查看
一、获取数据库表信息
检索可在给定类别中使用的表的描述。仅返回与类别、模式、表名称和类型标准匹配的表描述。它们根据 TABLE_TYPE、TABLE_SCHEM 和 TABLE_NAME 进行排序。
每个表描述都有以下列:
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 => 有类型表的指定 "identifier" 列的名称(可为
REF_GENERATION String => 指定在 SELF_REFERENCING_COL_NAME 中创建值的方式。这些值为 "SYSTEM"、"USER" 和 "DERIVED"。(可能为
注: 有些数据库可能不返回用于所有表的信息。
参数:
二、获取表中列信息
检索可在指定类别中使用的表列的描述。
仅返回与类别、模式、表和列名称标准匹配的列描述。它们根据
每个列描述都有以下列:
TABLE_CAT String => 表类别(可为
TABLE_SCHEM String => 表模式(可为
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
DATA_TYPE int => 来自 java.sql.Types 的 SQL 类型
TYPE_NAME String => 数据源依赖的类型名称,对于 UDT,该类型名称是完全限定的
COLUMN_SIZE int => 列的大小。对于 char 或 date 类型,列的大小是最大字符数,对于 numeric 和 decimal 类型,列的大小就是精度。
BUFFER_LENGTH 未被使用。
DECIMAL_DIGITS int => 小数部分的位数
NUM_PREC_RADIX int => 基数(通常为 10 或 2)
NULLABLE int => 是否允许使用 NULL。
columnNoNulls - 可能不允许使用
columnNullable - 明确允许使用
columnNullableUnknown - 不知道是否可使用 null
REMARKS String => 描述列的注释(可为
COLUMN_DEF String => 默认值(可为
SQL_DATA_TYPE int => 未使用
SQL_DATETIME_SUB int => 未使用
CHAR_OCTET_LENGTH int => 对于 char 类型,该长度是列中的最大字节数
ORDINAL_POSITION int => 表中的列的索引(从 1 开始)
IS_NULLABLE String => "NO" 表示明确不允许列使用 NULL 值,"YES" 表示可能允许列使用 NULL 值。空字符串表示没人知道是否允许使用 null 值。
SCOPE_CATLOG String => 表的类别,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
SCOPE_SCHEMA String => 表的模式,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
SCOPE_TABLE String => 表名称,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
SOURCE_DATA_TYPE short => 不同类型或用户生成 Ref 类型、来自 java.sql.Types 的 SQL 类型的源类型(如果 DATA_TYPE 不是 DISTINCT 或用户生成的 REF,则为
参数:
三、表中主键信息
检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。
每个主键列描述都有以下列:
TABLE_CAT String => 表类别(可为
TABLE_SCHEM String => 表模式(可为
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
KEY_SEQ short => 主键中的序列号
PK_NAME String => 主键的名称(可为
参数:
getTables
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException
检索可在给定类别中使用的表的描述。仅返回与类别、模式、表名称和类型标准匹配的表描述。它们根据 TABLE_TYPE、TABLE_SCHEM 和 TABLE_NAME 进行排序。
每个表描述都有以下列:
TABLE_CAT String => 表类别(可为
null)
TABLE_SCHEM String => 表模式(可为
null)
TABLE_NAME String => 表名称
TABLE_TYPE String => 表类型。典型的类型是 "TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS" 和 "SYNONYM"。
REMARKS String => 表的解释性注释
TYPE_CAT String => 类型的类别(可为
null)
TYPE_SCHEM String => 类型模式(可为
null)
TYPE_NAME String => 类型名称(可为
null)
SELF_REFERENCING_COL_NAME String => 有类型表的指定 "identifier" 列的名称(可为
null)
REF_GENERATION String => 指定在 SELF_REFERENCING_COL_NAME 中创建值的方式。这些值为 "SYSTEM"、"USER" 和 "DERIVED"。(可能为
null)
注: 有些数据库可能不返回用于所有表的信息。
参数:
catalog- 类别名称,因为存储在数据库中,所以它必须匹配类别名称。该参数为 "" 则检索没有类别的描述,为
null则表示该类别名称不应用于缩小搜索范围
schemaPattern- 模式名称的模式,因为存储在数据库中,所以它必须匹配模式名称。该参数为 "" 则检索那些没有模式的描述,为
null则表示该模式名称不应用于缩小搜索范围
tableNamePattern- 表名称模式,因为存储在数据库中,所以它必须匹配表名称
types- 要包括的表类型组成的列表,
null表示返回所有类型 返回:
ResultSet- 每一行都是一个表描述 抛出:
SQLException- 如果发生数据库访问错误
二、获取表中列信息
getColumns
ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException
检索可在指定类别中使用的表列的描述。
仅返回与类别、模式、表和列名称标准匹配的列描述。它们根据
TABLE_SCHEM、
TABLE_NAME和
ORDINAL_POSITION进行排序。
每个列描述都有以下列:
TABLE_CAT String => 表类别(可为
null)
TABLE_SCHEM String => 表模式(可为
null)
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
DATA_TYPE int => 来自 java.sql.Types 的 SQL 类型
TYPE_NAME String => 数据源依赖的类型名称,对于 UDT,该类型名称是完全限定的
COLUMN_SIZE int => 列的大小。对于 char 或 date 类型,列的大小是最大字符数,对于 numeric 和 decimal 类型,列的大小就是精度。
BUFFER_LENGTH 未被使用。
DECIMAL_DIGITS int => 小数部分的位数
NUM_PREC_RADIX int => 基数(通常为 10 或 2)
NULLABLE int => 是否允许使用 NULL。
columnNoNulls - 可能不允许使用
NULL值
columnNullable - 明确允许使用
NULL值
columnNullableUnknown - 不知道是否可使用 null
REMARKS String => 描述列的注释(可为
null)
COLUMN_DEF String => 默认值(可为
null)
SQL_DATA_TYPE int => 未使用
SQL_DATETIME_SUB int => 未使用
CHAR_OCTET_LENGTH int => 对于 char 类型,该长度是列中的最大字节数
ORDINAL_POSITION int => 表中的列的索引(从 1 开始)
IS_NULLABLE String => "NO" 表示明确不允许列使用 NULL 值,"YES" 表示可能允许列使用 NULL 值。空字符串表示没人知道是否允许使用 null 值。
SCOPE_CATLOG String => 表的类别,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
null)
SCOPE_SCHEMA String => 表的模式,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
null)
SCOPE_TABLE String => 表名称,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为
null)
SOURCE_DATA_TYPE short => 不同类型或用户生成 Ref 类型、来自 java.sql.Types 的 SQL 类型的源类型(如果 DATA_TYPE 不是 DISTINCT 或用户生成的 REF,则为
null)
参数:
catalog- 类别名称,因为存储在数据库中,所以它必须匹配类别名称。该参数为 "" 则检索没有类别的描述,为
null则表示该类别名称不应用于缩小搜索范围
schemaPattern- 模式名称的模式,因为存储在数据库中,所以它必须匹配模式名称。该参数为 "" 则检索那些没有模式的描述,为
null则表示该模式名称不应用于缩小搜索范围
tableNamePattern- 表名称模式,因为存储在数据库中,所以它必须匹配表名称
columnNamePattern- 列名称模式,因为存储在数据库中,所以它必须匹配列名称 返回:
ResultSet- 每一行都是一个列描述 抛出:
SQLException- 如果发生数据库访问错误 另请参见:
getSearchStringEscape()
三、表中主键信息
getPrimaryKeys
ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。
每个主键列描述都有以下列:
TABLE_CAT String => 表类别(可为
null)
TABLE_SCHEM String => 表模式(可为
null)
TABLE_NAME String => 表名称
COLUMN_NAME String => 列名称
KEY_SEQ short => 主键中的序列号
PK_NAME String => 主键的名称(可为
null)
参数:
catalog- 类别名称,因为存储在数据库中,所以它必须匹配类别名称。该参数为 "" 则检索没有类别的描述,为
null则表示该类别名称不应用于缩小搜索范围
schema- 模式名称,因为存储在数据库中,所以它必须匹配模式名称。该参数为 "" 则检索那些没有模式的描述,为
null则表示该模式名称不应用于缩小搜索范围
table- 表名称,因为存储在数据库中,所以它必须匹配表名称 返回:
ResultSet- 每一行都是一个主键列描述 抛出:
SQLException- 如果发生数据库访问错误
相关文章推荐
- DatabaseMetaData获取数据库信息 .
- DatabaseMetaData 动态获取数据库表信息
- DatabaseMetaData获取数据库信息和表信息(表的列名,类型,主键等)SQL java
- jdbc之MetaData_获取数据库信息
- JDBC通过DatabaseMetaData对象了解数据库信息
- JDBC通过DatabaseMetaData对象了解数据库信息
- JDBC之通过DatabaseMetaData对象了解数据库的信息
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过
- DatabaseMetaData之获取数据库所有表
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过【想写基于数据库代码生成器可参考】
- JDBC的那点事之DatabaseMetaData之获取数据库所有表
- JDBC的那点事之DatabaseMetaData之获取数据库所有表
- JDBC(5)ResSetMetaData&DatabaseMetaData&获取数据库主键的值
- JDBC利用DatabaseMetaData,ResultSetMetaData获取数据库连接信息,数据库信息,表信息
- freemarker的DatabaseTemplateLoader从数据库中获取模板信息
- JDBC的那点事之DatabaseMetaData之获取数据库所有表
- T-SQL获取数据库中的Table表结构信息,Column结构信息
- SQL SERVER获取数据库文件信息
- SQL Server 数据库获取架构信息
- MS SQL 获取数据库名,表名,列名,说明等信息(SQL Server 2005 测试通过)