java.sql

接口
异常
所有超级接口:
Wrapper

public interface DatabaseMetaData
     
extends Wrapper

关于数据库的整体综合信息。

此接口由驱动程序供应商实现,让用户了解 Database Management System (DBMS) 在与驱动程序(基于与其一起使用的 JDBCTM 技术(“JDBC 驱动程序”))相结合时的能力。不同的关系 DBMS 常常支持不同的功能,以不同方式实现这些功能,并使用不同的数据类型。此外,驱动程序可以实现 DBMS 提供的顶级功能。此接口中的方法返回的信息关系到一起工作的特定驱动程序和特定 DBMS 的能力。注意,正如此文档中所使用的那样,术语“数据库”通常既指驱动程序,又指 DBMS。

此接口的用户通常是一个需要发现如何处理底层 DBMS 的工具。对于试图与多个 DBMS 一起使用的应用程序而言尤其如此。例如,一个工具可能使用 getTypeInfo 方法找出可以在 CREATE TABLE 语句中使用的数据类型。或者用户可能调用 supportsCorrelatedSubqueries 方法查看是否可以使用相关子查询,或者调用 supportsBatchUpdates 查看是否可以使用批量更新。

有些 DatabaseMetaData 方法以 ResultSet 对象的形式返回信息列表。常规 ResultSet 方法(比如 getStringgetInt)可用于从这些 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_RULEDELETE_RULE 列,指示如果主键已导入,则无法更新或删除它。
static int importedKeyNotDeferrable
          指示可延迟性。
static int importedKeyRestrict
          对于 UPDATE_RULE 列,指示如果主键已被另一个表作为外键导入,则可能不更新该主键。
static int importedKeySetDefault
          对于 UPDATE_RULEDELETE_RULE 列,指示如果更新或删除了主键,则将外键(导入的键)设置为默认值。
static int importedKeySetNull
          对于 UPDATE_RULEDELETE_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 数据类型 LONGVARCHARLONGVARBINARY
 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()
          获取可用于转义通配符的字符串。

JDK 1.6 中文手册