public interface DatabaseMetaData
关于数据库的整体综合信息。
此接口由驱动程序供应商实现,让用户了解 Database Management System (DBMS) 在与驱动程序(基于与其一起使用的 JDBCTM 技术(“JDBC 驱动程序”))相结合时的能力。不同的关系 DBMS 常常支持不同的功能,以不同方式实现这些功能,并使用不同的数据类型。此外,驱动程序可以实现 DBMS 提供的顶级功能。此接口中的方法返回的信息关系到一起工作的特定驱动程序和特定 DBMS 的能力。注意,正如此文档中所使用的那样,术语“数据库”通常既指驱动程序,又指 DBMS。
此接口的用户通常是一个需要发现如何处理底层 DBMS 的工具。对于试图与多个 DBMS 一起使用的应用程序而言尤其如此。例如,一个工具可能使用 getTypeInfo
方法找出可以在 CREATE TABLE
语句中使用的数据类型。或者用户可能调用 supportsCorrelatedSubqueries
方法查看是否可以使用相关子查询,或者调用 supportsBatchUpdates
查看是否可以使用批量更新。
有些 DatabaseMetaData
方法以 ResultSet
对象的形式返回信息列表。常规 ResultSet
方法(比如 getString
和 getInt
)可用于从这些 ResultSet
对象中获取数据。如果给定形式的元数据不可用,则将返回一个空 ResultSet
。对于被定义为由 ResultSet
对象的给定方法所返回的列以外的其他列,可以由 JDBC 驱动程序供应商定义,且必须通过其列标签访问。
有些 DatabaseMetaData
方法使用 String 模式的参数。这些参数都有 fooPattern 这样的名称。在模式 String 中,"%" 表示匹配 0 个或多个字符的任何子字符串,"_" 表示匹配任何一个字符。仅返回匹配搜索模式的元数据项。如果将搜索模式参数设置为 null
,则从搜索中删除参数标准。
字段摘要 | |
---|---|
static short |
attributeNoNulls 指示可能不允许使用 NULL 值。 |
static short |
attributeNullable 指示明确允许使用 NULL 值。 |
static short |
attributeNullableUnknown 指示不知道是否允许使用 NULL 值。 |
static int |
bestRowNotPseudo 指示最佳行标识符“不”是伪列。 |
static int |
bestRowPseudo 指示最佳行标识符是伪列。 |
static int |
bestRowSession 指示最佳行标识符的作用域是当前会话的剩余部分。 |
static int |
bestRowTemporary 指示最佳行标识符的作用域是临时的,仅在使用该行时可用。 |
static int |
bestRowTransaction 指示最佳行标识符的作用域是当前事务的剩余部分。 |
static int |
bestRowUnknown 指示最佳行标识符可能是伪列 (pseudo column),也可能不是。 |
static int |
columnNoNulls 指示列中可能不允许使用 NULL 值。 |
static int |
columnNullable 指示列中明确允许使用 NULL 值。 |
static int |
columnNullableUnknown 指示不知道列是否可为 null。 |
static int |
functionColumnIn 指示参数或列是一个 IN 参数。 |
static int |
functionColumnInOut 指示参数或列是一个 INOUT 参数。 |
static int |
functionColumnOut 指示参数或列是一个 OUT 参数。 |
static int |
functionColumnResult 指示参数或列是结果集中的一列。 |
static int |
functionColumnUnknown 指示该类型的参数或列未知。 |
static int |
functionNoNulls 指示不允许 NULL 值。 |
static int |
functionNoTable 指示函数不返回一个表。 |
static int |
functionNullable 指示允许 NULL 值。 |
static int |
functionNullableUnknown 指示是否允许 NULL 值是未知的。 |
static int |
functionResultUnknown 指示不知道函数是返回一个结果还是一个表。 |
static int |
functionReturn 指示参数或列是一个返回值。 |
static int |
functionReturnsTable 指示函数返回一个表。 |
static int |
importedKeyCascade 对于 UPDATE_RULE 列,指示在更新主键时,外键(导入的键)的更改要与之一致。 |
static int |
importedKeyInitiallyDeferred 指示可延迟性。 |
static int |
importedKeyInitiallyImmediate 指示可延迟性。 |
static int |
importedKeyNoAction 对于 UPDATE_RULE 和 DELETE_RULE 列,指示如果主键已导入,则无法更新或删除它。 |
static int |
importedKeyNotDeferrable 指示可延迟性。 |
static int |
importedKeyRestrict 对于 UPDATE_RULE 列,指示如果主键已被另一个表作为外键导入,则可能不更新该主键。 |
static int |
importedKeySetDefault 对于 UPDATE_RULE 和 DELETE_RULE 列,指示如果更新或删除了主键,则将外键(导入的键)设置为默认值。 |
static int |
importedKeySetNull 对于 UPDATE_RULE 和 DELETE_RULE 列,指示在更新或删除主键时,将外键(导入的键)更改为 NULL 。 |
static int |
procedureColumnIn 指示列中存储了 IN 参数。 |
static int |
procedureColumnInOut 指示列中存储了 INOUT 参数。 |
static int |
procedureColumnOut 指示列中存储了 OUT 参数。 |
static int |
procedureColumnResult 指示列中存储了结果。 |
static int |
procedureColumnReturn 指示列中存储了返回值。 |
static int |
procedureColumnUnknown 指示列的类型为未知。 |
static int |
procedureNoNulls 指示不允许使用 NULL 值。 |
static int |
procedureNoResult 指示过程不返回结果。 |
static int |
procedureNullable 指示允许使用 NULL 值。 |
static int |
procedureNullableUnknown 指示不知道是否允许使用 NULL 值。 |
static int |
procedureResultUnknown 指示不知道过程是否返回结果。 |
static int |
procedureReturnsResult 指示过程返回结果。 |
static int |
sqlStateSQL DatabaseMetaData.getSQLStateType 方法一个可能的返回值,用于指示 SQLException.getSQLState 方法返回的值是否是一个 SQLSTATE 值。 |
static int |
sqlStateSQL99 DatabaseMetaData.getSQLStateType 方法一个可能的返回值,用于指示 SQLException.getSQLState 方法返回的值是否是一个 SQL99 SQLSTATE 值。 |
static int |
sqlStateXOpen DatabaseMetaData.getSQLStateType 方法一个可能的返回值,用于指示 SQLException.getSQLState 返回的值是否是一个 X/Open(现在称为 Open Group)SQL CLI SQLSTATE 值。 |
static short |
tableIndexClustered 指示此表索引是一个集群索引 (clustered index)。 |
static short |
tableIndexHashed 指示此表索引是一个散列索引。 |
static short |
tableIndexOther 指示此表索引不是集群索引、散列索引或表统计信息,它是其他某种东西。 |
static short |
tableIndexStatistic 指示此列包含与表的索引描述一起返回的表统计信息。 |
static int |
typeNoNulls 指示“不”允许对这种数据类型使用 NULL 值。 |
static int |
typeNullable 指示允许对这种数据类型使用 NULL 值。 |
static int |
typeNullableUnknown 指示不知道是否允许对这种数据类型使用 NULL 值。 |
static int |
typePredBasic 指示该数据类型只能用于不使用 LIKE 谓词的 WHERE 搜索子句中。 |
static int |
typePredChar 指示该数据类型只能用于使用 LIKE 谓词的 WHERE 搜索子句中。 |
static int |
typePredNone 指示不支持将 WHERE 搜索子句用于这种类型。 |
static int |
typeSearchable 指示在此类型上可以建立所有 WHERE 搜索子句。 |
static int |
versionColumnNotPseudo 指示这种版本的列“不”是伪列。 |
static int |
versionColumnPseudo 指示这种版本的列是伪列。 |
static int |
versionColumnUnknown 指示这种版本的列可能是伪列,也可能不是。 |
方法摘要 | |
---|---|
boolean |
allProceduresAreCallable() 获取当前用户是否可以调用 getProcedures 方法返回的所有过程。 |
boolean |
allTablesAreSelectable() 获取当前用户是否可以使用 SELECT 语句中的 getTables 方法返回的所有表。 |
boolean |
autoCommitFailureClosesAllResultSets() 当 autoCommit 为 true 时,获取 SQLException 是否指示所有打开的 ResultSets 已关闭(包括那些可保持的)。 |
boolean |
dataDefinitionCausesTransactionCommit() 获取事务中的数据定义语句是否强迫该事务进行提交。 |
boolean |
dataDefinitionIgnoredInTransactions() 获取此数据库是否忽略事务中的数据定义语句。 |
boolean |
deletesAreDetected(int type) 获取是否可以通过调用 ResultSet.rowDeleted 方法检测可见行的删除。 |
boolean |
doesMaxRowSizeIncludeBlobs() 获取 getMaxRowSize 方法的返回值是否包括 SQL 数据类型 LONGVARCHAR 和 LONGVARBINARY 。 |
ResultSet |
getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) 获取可在给定模式和类别中使用的用户定义类型 (UDT) 的给定类型的给定属性的描述。 |
ResultSet |
getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) 获取唯一标识行的表的最佳列集合的描述。 |
ResultSet |
getCatalogs() 获取可在此数据库中使用的类别名称。 |
String |
getCatalogSeparator() 获取此数据库用作类别和表名之间的分隔符的 String 。 |
String |
getCatalogTerm() 获取数据库供应商用于 "catalog" 的首选术语。 |
ResultSet |
getClientInfoProperties() 获取驱动程序支持的客户端信息属性的列表。 |
ResultSet |
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) 获取用于表列的访问权的描述。 |
ResultSet |
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) 获取可在指定类别中使用的表列的描述。 |
Connection |
getConnection() 获取此元数据对象所产生的连接。 |
ResultSet |
getCrossReference(String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable) 获取给定外键列表中外键列的描述,这些列引用主键或表示父表(可能是相同的表,也可能是不同的表)唯一约束的列。 |
int |
getDatabaseMajorVersion() 获取底层数据库的主版本号。 |
int |
getDatabaseMinorVersion() 底层数据库的次版本号。 |
String |
getDatabaseProductName() 获取此数据库产品的名称。 |
String |
getDatabaseProductVersion() 获取此数据库产品的版本号。 |
int |
getDefaultTransactionIsolation() 获取此数据库的默认事务隔离级别。 |
int |
getDriverMajorVersion() 获取此 JDBC 驱动程序的主版本号。 |
int |
getDriverMinorVersion() 获取此 JDBC 驱动程序的次版本号。 |
String |
getDriverName() 获取此 JDBC 驱动程序的名称。 |
String |
getDriverVersion() 获取此 JDBC 驱动程序的 String 形式的版本号。 |
ResultSet |
getExportedKeys(String catalog, String schema, String table) 获取引用给定表的主键列(表导入的外键)的外键列的描述。 |
String |
getExtraNameCharacters() 获取可以在不带引号的标识符名称中使用的所有“额外”字符(除了 a-z、A-Z、0-9 和 _ 以外的字符)。 |
ResultSet |
getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) 获取给定类别的系统或用户函数参数和返回类型的描述。 |
ResultSet |
getFunctions(String catalog, String schemaPattern, String functionNamePattern) 获取给定类别中可用的系统和用户函数的描述。 |
String |
getIdentifierQuoteString() 获取用于引用 SQL 标识符的字符串。 |
ResultSet |
getImportedKeys(String catalog, String schema, String table) 获取由给定表的外键列(表导入的主键)引用的主键列的描述。 |
ResultSet |
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) 获取给定表的索引和统计信息的描述。 |
int |
getJDBCMajorVersion() 获取此驱动程序的主 JDBC 版本号。 |
int |
getJDBCMinorVersion() 获取此驱动程序的次 JDBC 版本号。 |
int |
getMaxBinaryLiteralLength() 获取此数据库允许在内嵌二进制字面值中使用的最大十六进制字符数。 |
int |
getMaxCatalogNameLength() 获取此数据库允许用于类别名称的最大字符数。 |
int |
getMaxCharLiteralLength() 获取此数据库允许用于字符字面值的最大字符数。 |
int |
getMaxColumnNameLength() 获取此数据库允许用于列名称的最大字符数。 |
int |
getMaxColumnsInGroupBy() 获取此数据库允许在 GROUP BY 子句中使用的最大列数。 |
int |
getMaxColumnsInIndex() 获取此数据库允许在索引中使用的最大列数。 |
int |
getMaxColumnsInOrderBy() 获取此数据库允许在 ORDER BY 子句中使用的最大列数。 |
int |
getMaxColumnsInSelect() 获取此数据库允许在 SELECT 列表中使用的最大列数。 |
int |
getMaxColumnsInTable() 获取此数据库允许在表中使用的最大列数。 |
int |
getMaxConnections() 获取连接到此数据库的并发连接的可能最大数。 |
int |
getMaxCursorNameLength() 获取此数据库允许用于游标名称的最大字符数。 |
int |
getMaxIndexLength() 获取此数据库允许用于索引(包括索引的所有部分)的最大字节数。 |
int |
getMaxProcedureNameLength() 获取此数据库允许用于过程名称的最大字符数。 |
int |
getMaxRowSize() 获取此数据库允许在单行中使用的最大字节数。 |
int |
getMaxSchemaNameLength() 获取此数据库允许在模式名称中使用的最大字符数。 |
int |
getMaxStatementLength() 获取此数据库允许在 SQL 语句中使用的最大字符数。 |
int |
getMaxStatements() 获取在此数据库中在同一时间内可处于开放状态的最大活动语句数。 |
int |
getMaxTableNameLength() 获取此数据库允许在表名称中使用的最大字符数。 |
int |
getMaxTablesInSelect() 获取此数据库允许在 SELECT 语句中使用的表的最大数量。 |
int |
getMaxUserNameLength() 获取此数据库允许在用户名称中使用的最大字符数。 |
String |
getNumericFunctions() 获取可用于此数据库的数学函数的逗号分隔列表。 |
ResultSet |
getPrimaryKeys(String catalog, String schema, String table) 获取对给定表的主键列的描述。 |
ResultSet |
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) 获取给定类别的存储过程参数和结果列的描述。 |
ResultSet |
getProcedures(String catalog, String schemaPattern, String procedureNamePattern) 获取可在给定类别中使用的存储过程的描述。 |
String |
getProcedureTerm() 获取数据库供应商用于 "procedure" 的首选术语。 |
int |
getResultSetHoldability() 针对 ResultSet 对象获取此数据库的默认可保存性。 |
RowIdLifetime |
getRowIdLifetime() 指示此数据源是否支持 SQL ROWID 类型,如果支持,则 RowId 对象在该类型的生存期内持续有效。 |
ResultSet |
getSchemas() 获取可在此数据库中使用的模式名称。 |
ResultSet |
getSchemas(String catalog, String schemaPattern) 获取此数据库中可用的模式名称。 |
String |
getSchemaTerm() 获取数据库供应商用于 "schema" 的首选术语。 |
String |
getSearchStringEscape() 获取可用于转义通配符的字符串。 |
|