Module java.sql
Package java.sql

Interface DatabaseMetaData

所有超级接口:
Wrapper

public interface DatabaseMetaData extends Wrapper
关于整个数据库的详细信息。

此接口由驱动程序供应商实现,以让用户了解与基于JDBC技术的驱动程序("JDBC驱动程序")一起使用的数据库管理系统(DBMS)的功能。不同的关系型DBMS通常支持不同的功能,以不同的方式实现功能,并使用不同的数据类型。此外,驱动程序可能在DBMS提供的功能之上实现功能。此接口中的方法返回的信息适用于特定驱动程序和特定DBMS一起工作的能力。请注意,在本文档中使用的术语"数据库"是通用地用来指代驱动程序和DBMS。

此接口的用户通常是需要了解如何处理底层DBMS的工具。这对于打算与多个DBMS一起使用的应用程序特别适用。例如,工具可能使用方法getTypeInfo来查找可以在CREATE TABLE语句中使用的数据类型。或者用户可能调用方法supportsCorrelatedSubqueries来查看是否可以使用相关子查询,或者supportsBatchUpdates来查看是否可以使用批量更新。

一些DatabaseMetaData方法以ResultSet对象的形式返回信息列表。可以使用常规的ResultSet方法,如getStringgetInt,从这些ResultSet对象中检索数据。如果给定形式的元数据不可用,则将返回一个空的ResultSet。超出给定方法为给定方法定义的要返回的ResultSet对象的列之外的列可以由JDBC驱动程序供应商定义,并必须通过它们的列标签访问。

一些DatabaseMetaData方法接受String模式的参数。这些参数都具有诸如fooPattern之类的名称。在模式字符串中,"%"表示匹配任意长度的子字符串,"_"表示匹配任何一个字符。仅返回与搜索模式匹配的元数据条目。如果搜索模式参数设置为null,则该参数的条件将从搜索中删除。

自版本:
1.1
  • Field Details

    • procedureResultUnknown

      static final int procedureResultUnknown
      表示不知道该过程是否返回结果。

      方法getProcedures返回的ResultSet对象中列PROCEDURE_TYPE的可能值。

      参见:
    • procedureNoResult

      static final int procedureNoResult
      表示该过程不返回结果。

      方法getProcedures返回的ResultSet对象中列PROCEDURE_TYPE的可能值。

      参见:
    • procedureReturnsResult

      static final int procedureReturnsResult
      表示该过程返回结果。

      方法getProcedures返回的ResultSet对象中列PROCEDURE_TYPE的可能值。

      参见:
    • procedureColumnUnknown

      static final int procedureColumnUnknown
      表示列的类型未知。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureColumnIn

      static final int procedureColumnIn
      表示列存储输入参数。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureColumnInOut

      static final int procedureColumnInOut
      表示列存储INOUT参数。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureColumnOut

      static final int procedureColumnOut
      表示列存储OUT参数。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureColumnReturn

      static final int procedureColumnReturn
      表示列存储返回值。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureColumnResult

      static final int procedureColumnResult
      表示列存储结果。

      方法getProcedureColumns返回的ResultSet中列COLUMN_TYPE的可能值。

      参见:
    • procedureNoNulls

      static final int procedureNoNulls
      表示不允许NULL值。

      方法getProcedureColumns返回的ResultSet对象中列NULLABLE的可能值。

      参见:
    • procedureNullable

      static final int procedureNullable
      表示允许NULL值。

      在方法getProcedureColumns返回的ResultSet对象中,NULLABLE列的可能值。

      参见:
    • procedureNullableUnknown

      static final int procedureNullableUnknown
      表示是否允许NULL值是未知的。

      在方法getProcedureColumns返回的ResultSet对象中,NULLABLE列的可能值。

      参见:
    • columnNoNulls

      static final int columnNoNulls
      表示该列可能不允许NULL值。

      在方法getColumns返回的ResultSet中,NULLABLE列的可能值。

      参见:
    • columnNullable

      static final int columnNullable
      表示该列绝对允许NULL值。

      在方法getColumns返回的ResultSet中,NULLABLE列的可能值。

      参见:
    • columnNullableUnknown

      static final int columnNullableUnknown
      表示列的可空性未知。

      在方法getColumns返回的ResultSet中,NULLABLE列的可能值。

      参见:
    • bestRowTemporary

      static final int bestRowTemporary
      表示最佳行标识符的范围非常短暂,仅在使用行时存在。

      在方法getBestRowIdentifier返回的ResultSet中,SCOPE列的可能值。

      参见:
    • bestRowTransaction

      static final int bestRowTransaction
      表示最佳行标识符的范围为当前事务的其余部分。

      在方法getBestRowIdentifier返回的ResultSet中,SCOPE列的可能值。

      参见:
    • bestRowSession

      static final int bestRowSession
      表示最佳行标识符的范围为当前会话的其余部分。

      在方法getBestRowIdentifier返回的ResultSet中,SCOPE列的可能值。

      参见:
    • bestRowUnknown

      static final int bestRowUnknown
      表示最佳行标识符可能是伪列,也可能不是。

      在方法getBestRowIdentifier返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • bestRowNotPseudo

      static final int bestRowNotPseudo
      表示最佳行标识符不是伪列。

      在方法getBestRowIdentifier返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • bestRowPseudo

      static final int bestRowPseudo
      表示最佳行标识符是伪列。

      在方法getBestRowIdentifier返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • versionColumnUnknown

      static final int versionColumnUnknown
      表示此版本列可能是伪列,也可能不是。

      在方法getVersionColumns返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • versionColumnNotPseudo

      static final int versionColumnNotPseudo
      表示此版本列不是伪列。

      在方法getVersionColumns返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • versionColumnPseudo

      static final int versionColumnPseudo
      表示此版本列是伪列。

      在方法getVersionColumns返回的ResultSet中,PSEUDO_COLUMN列的可能值。

      参见:
    • importedKeyCascade

      static final int importedKeyCascade
      对于UPDATE_RULE列,表示当主键更新时,外键(导入键)将被更改以与之一致。对于DELETE_RULE列,表示当主键被删除时,导入该键的行将被删除。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,UPDATE_RULEDELETE_RULE列的可能值。

      参见:
    • importedKeyRestrict

      static final int importedKeyRestrict
      对于UPDATE_RULE列,表示如果主键已被另一张表作为外键导入,则可能无法更新主键。对于DELETE_RULE列,表示如果主键已被另一张表作为外键导入,则可能无法删除主键。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,UPDATE_RULEDELETE_RULE列的可能值。

      参见:
    • importedKeySetNull

      static final int importedKeySetNull
      对于UPDATE_RULEDELETE_RULE列,表示当主键更新或删除时,外键(导入键)将更改为NULL

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,UPDATE_RULEDELETE_RULE列的可能值。

      参见:
    • importedKeyNoAction

      static final int importedKeyNoAction
      对于UPDATE_RULEDELETE_RULE列,表示如果主键已被导入,则无法更新或删除主键。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,UPDATE_RULEDELETE_RULE列的可能值。

      参见:
    • importedKeySetDefault

      static final int importedKeySetDefault
      对于UPDATE_RULEDELETE_RULE列,表示如果主键更新或删除,则外键(导入键)将设置为默认值。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,UPDATE_RULEDELETE_RULE列的可能值。

      参见:
    • importedKeyInitiallyDeferred

      static final int importedKeyInitiallyDeferred
      表示可延迟性。请参阅SQL-92以获取定义。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,DEFERRABILITY列的可能值。

      参见:
    • importedKeyInitiallyImmediate

      static final int importedKeyInitiallyImmediate
      表示可延迟性。请参阅SQL-92以获取定义。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,DEFERRABILITY列的可能值。

      参见:
    • importedKeyNotDeferrable

      static final int importedKeyNotDeferrable
      表示可延迟性。请参阅SQL-92以获取定义。

      在方法getImportedKeysgetExportedKeysgetCrossReference返回的ResultSet对象中,DEFERRABILITY列的可能值。

      参见:
    • typeNoNulls

      static final int typeNoNulls
      表示此数据类型不允许NULL值。

      可能是由方法getTypeInfo返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • typeNullable

      static final int typeNullable
      表示此数据类型允许NULL值。

      可能是由方法getTypeInfo返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • typeNullableUnknown

      static final int typeNullableUnknown
      表示不确定此数据类型是否允许NULL值。

      可能是由方法getTypeInfo返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • typePredNone

      static final int typePredNone
      表示此类型不支持WHERE搜索子句。

      可能是由方法getTypeInfo返回的ResultSet对象中SEARCHABLE列的一个可能值。

      参见:
    • typePredChar

      static final int typePredChar
      表示数据类型只能在使用LIKE谓词的WHERE搜索子句中使用。

      可能是由方法getTypeInfo返回的ResultSet对象中SEARCHABLE列的一个可能值。

      参见:
    • typePredBasic

      static final int typePredBasic
      表示数据类型只能在不使用LIKE谓词的WHERE搜索子句中使用。

      可能是由方法getTypeInfo返回的ResultSet对象中SEARCHABLE列的一个可能值。

      参见:
    • typeSearchable

      static final int typeSearchable
      表示所有WHERE搜索子句都可以基于此类型。

      可能是由方法getTypeInfo返回的ResultSet对象中SEARCHABLE列的一个可能值。

      参见:
    • tableIndexStatistic

      static final short tableIndexStatistic
      表示此列包含与表的索引描述一起返回的表统计信息。

      可能是由方法getIndexInfo返回的ResultSet对象中TYPE列的一个可能值。

      参见:
    • tableIndexClustered

      static final short tableIndexClustered
      表示此表索引是一个聚集索引。

      可能是由方法getIndexInfo返回的ResultSet对象中TYPE列的一个可能值。

      参见:
    • tableIndexHashed

      static final short tableIndexHashed
      表示此表索引是一个哈希索引。

      可能是由方法getIndexInfo返回的ResultSet对象中TYPE列的一个可能值。

      参见:
    • tableIndexOther

      static final short tableIndexOther
      表示此表索引不是聚集索引、哈希索引或表统计信息;它是其他类型的索引。

      可能是由方法getIndexInfo返回的ResultSet对象中TYPE列的一个可能值。

      参见:
    • attributeNoNulls

      static final short attributeNoNulls
      表示可能不允许NULL值。

      可能是由方法getAttributes返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • attributeNullable

      static final short attributeNullable
      表示绝对允许NULL值。

      可能是由方法getAttributes返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • attributeNullableUnknown

      static final short attributeNullableUnknown
      表示不确定是否允许NULL值。

      可能是由方法getAttributes返回的ResultSet对象中NULLABLE列的一个可能值。

      参见:
    • sqlStateXOpen

      static final int sqlStateXOpen
      方法DatabaseMetaData.getSQLStateType的可能返回值,用于指示方法SQLException.getSQLState返回的值是否为X/Open(现在称为Open Group)SQL CLI SQLSTATE值。
      自:
      1.4
      参见:
    • sqlStateSQL

      static final int sqlStateSQL
      方法DatabaseMetaData.getSQLStateType的可能返回值,用于指示方法SQLException.getSQLState返回的值是否为SQLSTATE值。
      自:
      1.6
      参见:
    • sqlStateSQL99

      static final int sqlStateSQL99
      方法DatabaseMetaData.getSQLStateType的可能返回值,用于指示方法SQLException.getSQLState返回的值是否为SQL99 SQLSTATE值。

      注意:此常量仅出于兼容性原因而保留。开发人员应该使用常量sqlStateSQL代替。

      自:
      1.4
      参见:
    • functionColumnUnknown

      static final int functionColumnUnknown
      表示参数或列的类型未知。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      参见:
    • functionColumnIn

      static final int functionColumnIn
      表示参数或列是一个IN参数。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      自:
      1.6
      参见:
    • functionColumnInOut

      static final int functionColumnInOut
      表示参数或列是一个INOUT参数。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      自:
      1.6
      参见:
    • functionColumnOut

      static final int functionColumnOut
      表示参数或列是一个OUT参数。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      自:
      1.6
      参见:
    • functionReturn

      static final int functionReturn
      表示参数或列是一个返回值。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      自:
      1.6
      参见:
    • functionColumnResult

      static final int functionColumnResult
      表示参数或列是结果集中的一列。

      可能是由方法getFunctionColumns返回的ResultSet对象中COLUMN_TYPE列的一个可能值。

      自:
      1.6
      参见:
    • functionNoNulls

      static final int functionNoNulls
      表示不允许NULL值。

      可能是由方法getFunctionColumns返回的ResultSet对象中NULLABLE列的一个可能值。

      自:
      1.6
      参见:
    • functionNullable

      static final int functionNullable
      表示允许NULL值。

      在方法getFunctionColumns返回的ResultSet对象中,NULLABLE列的可能值。

      自从:
      1.6
      参见:
    • functionNullableUnknown

      static final int functionNullableUnknown
      表示是否允许NULL值是未知的。

      在方法getFunctionColumns返回的ResultSet对象中,NULLABLE列的可能值。

      自从:
      1.6
      参见:
    • functionResultUnknown

      static final int functionResultUnknown
      表示不知道函数是返回结果还是表。

      在方法getFunctions返回的ResultSet对象中,FUNCTION_TYPE列的可能值。

      自从:
      1.6
      参见:
    • functionNoTable

      static final int functionNoTable
      表示函数不返回表。

      在方法getFunctions返回的ResultSet对象中,FUNCTION_TYPE列的可能值。

      自从:
      1.6
      参见:
    • functionReturnsTable

      static final int functionReturnsTable
      表示函数返回表。

      在方法getFunctions返回的ResultSet对象中,FUNCTION_TYPE列的可能值。

      自从:
      1.6
      参见:
  • Method Details

    • allProceduresAreCallable

      boolean allProceduresAreCallable() throws SQLException
      检索当前用户是否可以调用方法getProcedures返回的所有存储过程。
      返回:
      如果可以,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • allTablesAreSelectable

      boolean allTablesAreSelectable() throws SQLException
      检索当前用户是否可以在SELECT语句中使用方法getTables返回的所有表。
      返回:
      如果可以,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getURL

      String getURL() throws SQLException
      检索此DBMS的URL。
      返回:
      此DBMS的URL,如果无法生成则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
    • getUserName

      String getUserName() throws SQLException
      检索此数据库中已知的用户名。
      返回:
      数据库用户名
      抛出:
      SQLException - 如果发生数据库访问错误
    • isReadOnly

      boolean isReadOnly() throws SQLException
      检索此数据库是否处于只读模式。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • nullsAreSortedHigh

      boolean nullsAreSortedHigh() throws SQLException
      检索NULL值是否排序为高值。排序为高值意味着NULL值在域中排序高于任何其他值。在升序排序中,如果此方法返回trueNULL值将出现在末尾。相比之下,方法nullsAreSortedAtEnd指示NULL值是否无论排序顺序如何都在末尾排序。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • nullsAreSortedLow

      boolean nullsAreSortedLow() throws SQLException
      检索NULL值是否排序为低值。排序为低值意味着NULL值在域中排序低于任何其他值。在升序排序中,如果此方法返回trueNULL值将出现在开头。相比之下,方法nullsAreSortedAtStart指示NULL值是否无论排序顺序如何都在开头排序。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • nullsAreSortedAtStart

      boolean nullsAreSortedAtStart() throws SQLException
      检索NULL值是否无论排序顺序如何都在开头排序。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • nullsAreSortedAtEnd

      boolean nullsAreSortedAtEnd() throws SQLException
      检索NULL值是否无论排序顺序如何都在末尾排序。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDatabaseProductName

      String getDatabaseProductName() throws SQLException
      检索此数据库产品的名称。
      返回:
      数据库产品名称
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDatabaseProductVersion

      String getDatabaseProductVersion() throws SQLException
      检索此数据库产品的版本号。
      返回:
      数据库产品版本号
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDriverName

      String getDriverName() throws SQLException
      检索此JDBC驱动程序的名称。
      返回:
      JDBC驱动程序名称
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDriverVersion

      String getDriverVersion() throws SQLException
      检索此JDBC驱动程序的版本号作为String
      返回:
      JDBC驱动程序版本号
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDriverMajorVersion

      int getDriverMajorVersion()
      检索此JDBC驱动程序的主要版本号。
      返回:
      JDBC驱动程序主要版本号
    • getDriverMinorVersion

      int getDriverMinorVersion()
      检索此JDBC驱动程序的次要版本号。
      返回:
      JDBC驱动程序次要版本号
    • usesLocalFiles

      boolean usesLocalFiles() throws SQLException
      检索此数据库是否将表存储在本地文件中。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • usesLocalFilePerTable

      boolean usesLocalFilePerTable() throws SQLException
      检索此数据库是否为每个表使用一个文件。
      返回:
      如果此数据库为每个表使用本地文件,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsMixedCaseIdentifiers

      boolean supportsMixedCaseIdentifiers() throws SQLException
      检索此数据库是否将未引用的SQL标识符的混合大小写视为区分大小写,并因此以混合大小写存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesUpperCaseIdentifiers

      boolean storesUpperCaseIdentifiers() throws SQLException
      检索此数据库是否将未引用的SQL标识符的混合大小写视为不区分大小写,并以大写形式存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesLowerCaseIdentifiers

      boolean storesLowerCaseIdentifiers() throws SQLException
      检索此数据库是否将未引用的SQL标识符的混合大小写视为不区分大小写,并以小写形式存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesMixedCaseIdentifiers

      boolean storesMixedCaseIdentifiers() throws SQLException
      检索此数据库是否将未引用的SQL标识符的混合大小写视为不区分大小写,并以混合大小写形式存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsMixedCaseQuotedIdentifiers

      boolean supportsMixedCaseQuotedIdentifiers() throws SQLException
      检索此数据库是否将引用的SQL标识符的混合大小写视为区分大小写,并因此以混合大小写存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesUpperCaseQuotedIdentifiers

      boolean storesUpperCaseQuotedIdentifiers() throws SQLException
      检索此数据库是否将引用的SQL标识符的混合大小写视为不区分大小写,并以大写形式存储它们。
      返回:
      如果是,则返回true; 否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesLowerCaseQuotedIdentifiers

      boolean storesLowerCaseQuotedIdentifiers() throws SQLException
      检索此数据库是否将引用的SQL标识符的混合大小写视为不区分大小写,并以小写形式存储它们。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • storesMixedCaseQuotedIdentifiers

      boolean storesMixedCaseQuotedIdentifiers() throws SQLException
      检索此数据库是否将混合大小写的带引号的SQL标识符视为不区分大小写并将它们存储为混合大小写。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getIdentifierQuoteString

      String getIdentifierQuoteString() throws SQLException
      检索用于引用SQL标识符的字符串。如果不支持标识符引用,则此方法返回一个空格 " "。
      返回值:
      引用字符串或空格(如果不支持引用)
      抛出:
      SQLException - 如果发生数据库访问错误
    • getSQLKeywords

      String getSQLKeywords() throws SQLException
      检索此数据库中所有不是SQL:2003关键字的逗号分隔的关键字列表。
      返回值:
      不是SQL:2003关键字的此数据库的关键字列表
      抛出:
      SQLException - 如果发生数据库访问错误
    • getNumericFunctions

      String getNumericFunctions() throws SQLException
      检索此数据库中可用的逗号分隔的所有数学函数列表。这些是JDBC函数转义子句中使用的Open / Open CLI数学函数名称。
      返回值:
      此数据库支持的数学函数列表
      抛出:
      SQLException - 如果发生数据库访问错误
    • getStringFunctions

      String getStringFunctions() throws SQLException
      检索此数据库中可用的逗号分隔的所有字符串函数列表。这些是JDBC函数转义子句中使用的Open Group CLI字符串函数名称。
      返回值:
      此数据库支持的字符串函数列表
      抛出:
      SQLException - 如果发生数据库访问错误
    • getSystemFunctions

      String getSystemFunctions() throws SQLException
      检索此数据库中可用的逗号分隔的所有系统函数列表。这些是JDBC函数转义子句中使用的Open Group CLI系统函数名称。
      返回值:
      此数据库支持的系统函数列表
      抛出:
      SQLException - 如果发生数据库访问错误
    • getTimeDateFunctions

      String getTimeDateFunctions() throws SQLException
      检索此数据库中可用的逗号分隔的所有时间和日期函数列表。
      返回值:
      此数据库支持的时间和日期函数列表
      抛出:
      SQLException - 如果发生数据库访问错误
    • getSearchStringEscape

      String getSearchStringEscape() throws SQLException
      检索可用于转义通配符字符的字符串。这是可用于转义目录搜索参数中的 '_' 或 '%' 的字符串(因此使用通配符字符之一的模式)。

      '_' 字符表示任何单个字符;'%' 字符表示零个或多个字符的序列。

      返回值:
      用于转义通配符字符的字符串
      抛出:
      SQLException - 如果发生数据库访问错误
    • getExtraNameCharacters

      String getExtraNameCharacters() throws SQLException
      检索可用于未带引号的标识符名称中的“额外”字符(超出 a-z、A-Z、0-9 和 _)的字符串。
      返回值:
      包含额外字符的字符串
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsAlterTableWithAddColumn

      boolean supportsAlterTableWithAddColumn() throws SQLException
      检索此数据库是否支持使用 ALTER TABLE 添加列。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsAlterTableWithDropColumn

      boolean supportsAlterTableWithDropColumn() throws SQLException
      检索此数据库是否支持使用 ALTER TABLE 删除列。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsColumnAliasing

      boolean supportsColumnAliasing() throws SQLException
      检索此数据库是否支持列别名。

      如果支持,可以使用 SQL AS 子句为计算列提供名称或根据需要为列提供别名。

      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • nullPlusNonNullIsNull

      boolean nullPlusNonNullIsNull() throws SQLException
      检索此数据库是否支持 NULL 和非 NULL 值之间的连接结果为 NULL
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsConvert

      boolean supportsConvert() throws SQLException
      检索此数据库是否支持将一个 JDBC 类型转换为另一个 JDBC 类型的 JDBC 标量函数 CONVERT。JDBC 类型是在 java.sql.Types 中定义的通用 SQL 数据类型。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsConvert

      boolean supportsConvert(int fromType, int toType) throws SQLException
      检索此数据库是否支持在 JDBC 类型 fromTypetoType 之间进行转换的 JDBC 标量函数 CONVERT。JDBC 类型是在 java.sql.Types 中定义的通用 SQL 数据类型。
      参数:
      fromType - 要转换的类型;来自类 java.sql.Types 的类型代码之一
      toType - 要转换为的类型;来自类 java.sql.Types 的类型代码之一
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • supportsTableCorrelationNames

      boolean supportsTableCorrelationNames() throws SQLException
      检索此数据库是否支持表关联名称。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsDifferentTableCorrelationNames

      boolean supportsDifferentTableCorrelationNames() throws SQLException
      检索当支持表关联名称时,它们是否限制为与表的名称不同。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsExpressionsInOrderBy

      boolean supportsExpressionsInOrderBy() throws SQLException
      检索此数据库是否支持在 ORDER BY 列表中使用表达式。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOrderByUnrelated

      boolean supportsOrderByUnrelated() throws SQLException
      检索此数据库是否支持在 ORDER BY 子句中使用不在 SELECT 语句中的列。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsGroupBy

      boolean supportsGroupBy() throws SQLException
      检索此数据库是否支持某种形式的 GROUP BY 子句。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsGroupByUnrelated

      boolean supportsGroupByUnrelated() throws SQLException
      检索此数据库是否支持在 GROUP BY 子句中使用不在 SELECT 语句中的列。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsGroupByBeyondSelect

      boolean supportsGroupByBeyondSelect() throws SQLException
      检索此数据库是否支持在 GROUP BY 子句中使用未包含在 SELECT 语句中的列,前提是 SELECT 语句中的所有列都包含在 GROUP BY 子句中。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsLikeEscapeClause

      boolean supportsLikeEscapeClause() throws SQLException
      检索此数据库是否支持指定 LIKE 转义子句。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsMultipleResultSets

      boolean supportsMultipleResultSets() throws SQLException
      检索此数据库是否支持从单个对 execute 方法的调用中获取多个 ResultSet 对象。
      返回值:
      true 如果是; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsMultipleTransactions

      boolean supportsMultipleTransactions() throws SQLException
      检索此数据库是否允许同时打开多个事务(在不同连接上)。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsNonNullableColumns

      boolean supportsNonNullableColumns() throws SQLException
      检索此数据库中的列是否可以定义为非空。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsMinimumSQLGrammar

      boolean supportsMinimumSQLGrammar() throws SQLException
      检索此数据库是否支持ODBC最小SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCoreSQLGrammar

      boolean supportsCoreSQLGrammar() throws SQLException
      检索此数据库是否支持ODBC核心SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsExtendedSQLGrammar

      boolean supportsExtendedSQLGrammar() throws SQLException
      检索此数据库是否支持ODBC扩展SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsANSI92EntryLevelSQL

      boolean supportsANSI92EntryLevelSQL() throws SQLException
      检索此数据库是否支持ANSI92入门级SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsANSI92IntermediateSQL

      boolean supportsANSI92IntermediateSQL() throws SQLException
      检索此数据库是否支持ANSI92中级SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsANSI92FullSQL

      boolean supportsANSI92FullSQL() throws SQLException
      检索此数据库是否支持ANSI92完整SQL语法。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsIntegrityEnhancementFacility

      boolean supportsIntegrityEnhancementFacility() throws SQLException
      检索此数据库是否支持SQL完整性增强功能。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOuterJoins

      boolean supportsOuterJoins() throws SQLException
      检索此数据库是否支持某种形式的外连接。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsFullOuterJoins

      boolean supportsFullOuterJoins() throws SQLException
      检索此数据库是否支持完全嵌套的外连接。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsLimitedOuterJoins

      boolean supportsLimitedOuterJoins() throws SQLException
      检索此数据库是否提供对外连接的有限支持。(如果方法supportsFullOuterJoins返回true,则为true)。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getSchemaTerm

      String getSchemaTerm() throws SQLException
      检索数据库供应商对“模式”的首选术语。
      返回:
      “模式”的供应商术语
      抛出:
      SQLException - 如果发生数据库访问错误
    • getProcedureTerm

      String getProcedureTerm() throws SQLException
      检索数据库供应商对“过程”的首选术语。
      返回:
      “过程”的供应商术语
      抛出:
      SQLException - 如果发生数据库访问错误
    • getCatalogTerm

      String getCatalogTerm() throws SQLException
      检索数据库供应商对“目录”的首选术语。
      返回:
      “目录”的供应商术语
      抛出:
      SQLException - 如果发生数据库访问错误
    • isCatalogAtStart

      boolean isCatalogAtStart() throws SQLException
      检索目录是否出现在完全限定表名的开头。如果不是,则目录出现在末尾。
      返回:
      如果目录名称出现在完全限定表名的开头,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getCatalogSeparator

      String getCatalogSeparator() throws SQLException
      检索此数据库用作目录和表名之间分隔符的String
      返回:
      分隔符字符串
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSchemasInDataManipulation

      boolean supportsSchemasInDataManipulation() throws SQLException
      检索模式名称是否可以在数据操作语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSchemasInProcedureCalls

      boolean supportsSchemasInProcedureCalls() throws SQLException
      检索模式名称是否可以在过程调用语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSchemasInTableDefinitions

      boolean supportsSchemasInTableDefinitions() throws SQLException
      检索模式名称是否可以在表定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSchemasInIndexDefinitions

      boolean supportsSchemasInIndexDefinitions() throws SQLException
      检索模式名称是否可以在索引定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSchemasInPrivilegeDefinitions

      boolean supportsSchemasInPrivilegeDefinitions() throws SQLException
      检索模式名称是否可以在权限定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCatalogsInDataManipulation

      boolean supportsCatalogsInDataManipulation() throws SQLException
      检索目录名称是否可以在数据操作语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCatalogsInProcedureCalls

      boolean supportsCatalogsInProcedureCalls() throws SQLException
      检索目录名称是否可以在过程调用语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCatalogsInTableDefinitions

      boolean supportsCatalogsInTableDefinitions() throws SQLException
      检索目录名称是否可以在表定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCatalogsInIndexDefinitions

      boolean supportsCatalogsInIndexDefinitions() throws SQLException
      检索目录名称是否可以在索引定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCatalogsInPrivilegeDefinitions

      boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException
      检索目录名称是否可以在权限定义语句中使用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsPositionedDelete

      boolean supportsPositionedDelete() throws SQLException
      检索此数据库是否支持定位DELETE语句。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsPositionedUpdate

      boolean supportsPositionedUpdate() throws SQLException
      检索此数据库是否支持定位UPDATE语句。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSelectForUpdate

      boolean supportsSelectForUpdate() throws SQLException
      检索此数据库是否支持SELECT FOR UPDATE语句。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsStoredProcedures

      boolean supportsStoredProcedures() throws SQLException
      检索此数据库是否支持使用存储过程转义语法的存储过程调用。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSubqueriesInComparisons

      boolean supportsSubqueriesInComparisons() throws SQLException
      检索此数据库是否支持比较表达式中的子查询。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSubqueriesInExists

      boolean supportsSubqueriesInExists() throws SQLException
      检索此数据库是否支持EXISTS表达式中的子查询。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSubqueriesInIns

      boolean supportsSubqueriesInIns() throws SQLException
      检索此数据库是否支持IN表达式中的子查询。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsSubqueriesInQuantifieds

      boolean supportsSubqueriesInQuantifieds() throws SQLException
      检索此数据库是否支持定量表达式中的子查询。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsCorrelatedSubqueries

      boolean supportsCorrelatedSubqueries() throws SQLException
      检索此数据库是否支持相关子查询。
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsUnion

      boolean supportsUnion() throws SQLException
      检索此数据库是否支持SQL UNION
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsUnionAll

      boolean supportsUnionAll() throws SQLException
      检索此数据库是否支持SQL UNION ALL
      返回:
      true 如果是这样; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOpenCursorsAcrossCommit

      boolean supportsOpenCursorsAcrossCommit() throws SQLException
      检索此数据库是否支持在提交过程中保持游标打开状态。
      返回:
      true 如果游标始终保持打开状态; false 如果它们可能不保持打开状态
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOpenCursorsAcrossRollback

      boolean supportsOpenCursorsAcrossRollback() throws SQLException
      检索此数据库是否支持在回滚过程中保持游标打开状态。
      返回:
      true 如果游标始终保持打开状态; false 如果它们可能不保持打开状态
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOpenStatementsAcrossCommit

      boolean supportsOpenStatementsAcrossCommit() throws SQLException
      检索此数据库是否支持在提交过程中保持语句打开状态。
      返回:
      true 如果语句始终保持打开状态; false 如果它们可能不保持打开状态
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsOpenStatementsAcrossRollback

      boolean supportsOpenStatementsAcrossRollback() throws SQLException
      检索此数据库是否支持在回滚过程中保持语句打开状态。
      返回:
      true 如果语句始终保持打开状态; false 如果它们可能不保持打开状态
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxBinaryLiteralLength

      int getMaxBinaryLiteralLength() throws SQLException
      检索此数据库允许内联二进制文字中的十六进制字符的最大数量。
      返回:
      最大长度(以十六进制字符表示)为二进制文字; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxCharLiteralLength

      int getMaxCharLiteralLength() throws SQLException
      检索此数据库允许字符文字的最大数量。
      返回:
      允许字符文字的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnNameLength

      int getMaxColumnNameLength() throws SQLException
      检索此数据库允许列名的最大数量。
      返回:
      允许列名的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnsInGroupBy

      int getMaxColumnsInGroupBy() throws SQLException
      检索此数据库允许在GROUP BY子句中的最大列数。
      返回:
      允许的最大列数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnsInIndex

      int getMaxColumnsInIndex() throws SQLException
      检索此数据库允许在索引中的最大列数。
      返回:
      允许的最大列数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnsInOrderBy

      int getMaxColumnsInOrderBy() throws SQLException
      检索此数据库允许在ORDER BY子句中的最大列数。
      返回:
      允许的最大列数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnsInSelect

      int getMaxColumnsInSelect() throws SQLException
      检索此数据库允许在SELECT列表中的最大列数。
      返回:
      允许的最大列数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxColumnsInTable

      int getMaxColumnsInTable() throws SQLException
      检索此数据库允许在表中的最大列数。
      返回:
      允许的最大列数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxConnections

      int getMaxConnections() throws SQLException
      检索此数据库可能存在的最大并发连接数。
      返回:
      可能同时存在的最大活动连接数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxCursorNameLength

      int getMaxCursorNameLength() throws SQLException
      检索此数据库允许游标名称中的最大字符数。
      返回:
      允许游标名称中的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxIndexLength

      int getMaxIndexLength() throws SQLException
      检索此数据库允许索引中的最大字节数,包括索引的所有部分。
      返回:
      允许的最大字节数; 此限制包括索引所有组成部分的组合; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxSchemaNameLength

      int getMaxSchemaNameLength() throws SQLException
      检索此数据库允许模式名称中的最大字符数。
      返回:
      允许模式名称中的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxProcedureNameLength

      int getMaxProcedureNameLength() throws SQLException
      检索此数据库允许过程名称中的最大字符数。
      返回:
      允许过程名称中的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxCatalogNameLength

      int getMaxCatalogNameLength() throws SQLException
      检索此数据库允许目录名称中的最大字符数。
      返回:
      允许目录名称中的最大字符数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxRowSize

      int getMaxRowSize() throws SQLException
      检索此数据库允许单行中的最大字节数。
      返回:
      允许的最大行字节数; 结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • doesMaxRowSizeIncludeBlobs

      boolean doesMaxRowSizeIncludeBlobs() throws SQLException
      检索方法getMaxRowSize的返回值是否包括SQL数据类型LONGVARCHARLONGVARBINARY
      返回值:
      如果是,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxStatementLength

      int getMaxStatementLength() throws SQLException
      检索此数据库允许在SQL语句中的最大字符数。
      返回值:
      SQL语句允许的最大字符数;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxStatements

      int getMaxStatements() throws SQLException
      检索此数据库允许同时打开的活动语句的最大数量。
      返回值:
      可以同时打开的语句的最大数量;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxTableNameLength

      int getMaxTableNameLength() throws SQLException
      检索此数据库允许在表名中的最大字符数。
      返回值:
      表名允许的最大字符数;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxTablesInSelect

      int getMaxTablesInSelect() throws SQLException
      检索此数据库允许在SELECT语句中的最大表数。
      返回值:
      SELECT语句中允许的最大表数;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getMaxUserNameLength

      int getMaxUserNameLength() throws SQLException
      检索此数据库允许在用户名中的最大字符数。
      返回值:
      用户名允许的最大字符数;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
    • getDefaultTransactionIsolation

      int getDefaultTransactionIsolation() throws SQLException
      检索此数据库的默认事务隔离级别。可能的值在java.sql.Connection中定义。
      返回值:
      默认隔离级别
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • supportsTransactions

      boolean supportsTransactions() throws SQLException
      检索此数据库是否支持事务。如果不支持,则调用方法commit是一个空操作,并且隔离级别为TRANSACTION_NONE
      返回值:
      如果支持事务,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsTransactionIsolationLevel

      boolean supportsTransactionIsolationLevel(int level) throws SQLException
      检索此数据库是否支持给定的事务隔离级别。
      参数:
      level - 在java.sql.Connection中定义的事务隔离级别之一
      返回值:
      如果支持,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • supportsDataDefinitionAndDataManipulationTransactions

      boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException
      检索此数据库是否在事务中支持数据定义和数据操作语句。
      返回值:
      如果支持,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsDataManipulationTransactionsOnly

      boolean supportsDataManipulationTransactionsOnly() throws SQLException
      检索此数据库是否仅在事务中支持数据操作语句。
      返回值:
      如果支持,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • dataDefinitionCausesTransactionCommit

      boolean dataDefinitionCausesTransactionCommit() throws SQLException
      检索在事务中数据定义语句是否强制事务提交。
      返回值:
      如果是,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • dataDefinitionIgnoredInTransactions

      boolean dataDefinitionIgnoredInTransactions() throws SQLException
      检索此数据库是否忽略在事务中的数据定义语句。
      返回值:
      如果是,则为true; 否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
    • getProcedures

      ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) throws SQLException
      检索给定目录中可用的存储过程的描述。

      仅返回与模式和存储过程名称条件匹配的存储过程描述。它们按PROCEDURE_CATPROCEDURE_SCHEMPROCEDURE_NAMESPECIFIC_ NAME排序。

      每个存储过程描述具有以下列:

      1. PROCEDURE_CAT String => 存储过程目录(可能为null
      2. PROCEDURE_SCHEM String => 存储过程模式(可能为null
      3. PROCEDURE_NAME String => 存储过程名称
      4. 保留供将来使用
      5. 保留供将来使用
      6. 保留供将来使用
      7. REMARKS String => 对存储过程的解释性注释
      8. PROCEDURE_TYPE short => 存储过程类型:
        • procedureResultUnknown - 无法确定是否会返回返回值
        • procedureNoResult - 不返回返回值
        • procedureReturnsResult - 返回返回值
      9. SPECIFIC_NAME String => 在其模式中唯一标识此存储过程的名称。

      用户可能没有权限执行getProcedures返回的任何存储过程。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的存储过程;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的存储过程;null表示不应使用模式名称来缩小搜索范围
      procedureNamePattern - 存储过程名称模式;必须与数据库中存储的存储过程名称匹配
      返回值:
      ResultSet - 每一行是一个存储过程描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getProcedureColumns

      ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) throws SQLException
      检索给定目录的存储过程参数和结果列的描述。

      仅返回与模式、过程和参数名称条件匹配的描述。它们按PROCEDURE_CAT、PROCEDURE_SCHEM、PROCEDURE_NAME和SPECIFIC_NAME排序。其中,首先是返回值(如果有)。接下来是按调用顺序的参数描述。列描述按列号顺序排列。

      ResultSet中的每一行都是一个参数描述或列描述,具有以下字段:

      1. PROCEDURE_CAT String => 过程目录(可能为null
      2. PROCEDURE_SCHEM String => 过程模式(可能为null
      3. PROCEDURE_NAME String => 过程名称
      4. COLUMN_NAME String => 列/参数名称
      5. COLUMN_TYPE Short => 列/参数的类型:
        • procedureColumnUnknown - 未知
        • procedureColumnIn - 输入参数
        • procedureColumnInOut - 输入/输出参数
        • procedureColumnOut - 输出参数
        • procedureColumnReturn - 过程返回值
        • procedureColumnResult - ResultSet中的结果列
      6. DATA_TYPE int => 来自java.sql.Types的SQL类型
      7. TYPE_NAME String => SQL类型名称,对于UDT类型,类型名称是完全限定的
      8. PRECISION int => 精度
      9. LENGTH int => 数据的字节长度
      10. SCALE short => 刻度 - 对于不适用SCALE的数据类型,返回null。
      11. RADIX short => 基数
      12. NULLABLE short => 是否可以包含NULL。
        • procedureNoNulls - 不允许NULL值
        • procedureNullable - 允许NULL值
        • procedureNullableUnknown - 不确定是否可为NULL
      13. REMARKS String => 描述参数/列的注释
      14. COLUMN_DEF String => 列的默认值,当值用单引号括起来时应解释为字符串(可能为null
        • 字符串NULL(不用引号括起来)- 如果指定了NULL作为默认值
        • TRUNCATE(不用引号括起来)- 如果指定的默认值无法表示而需要截断
        • NULL - 如果未指定默认值
      15. SQL_DATA_TYPE int => 保留供将来使用
      16. SQL_DATETIME_SUB int => 保留供将来使用
      17. CHAR_OCTET_LENGTH int => 二进制和基于字符的列的最大长度。对于任何其他数据类型,返回值为NULL
      18. ORDINAL_POSITION int => 从1开始的输入和输出参数的序数位置,如果此行描述过程的返回值,则返回值为0。对于结果集列,它是结果集中列的序数位置,从1开始。如果有多个结果集,则列序数位置是实现定义的。
      19. IS_NULLABLE String => 使用ISO规则确定列的可为NULL性。
        • YES --- 如果列可以包含NULL值
        • NO --- 如果列不可以包含NULL值
        • 空字符串 --- 如果列的可为NULL性未知
      20. SPECIFIC_NAME String => 在其模式中唯一标识此过程的名称

      注意:某些数据库可能不会返回过程的列描述。

      PRECISION列表示给定列的指定列大小。对于数值数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      procedureNamePattern - 过程名称模式;必须与数据库中存储的过程名称匹配
      columnNamePattern - 列名称模式;必须与数据库中存储的列名称匹配
      返回:
      ResultSet - 每一行描述一个存储过程参数或列
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getTables

      ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException
      检索给定目录中可用的表的描述。仅返回与目录、模式、表名称和类型条件匹配的表描述。它们按TABLE_TYPETABLE_CATTABLE_SCHEMTABLE_NAME排序。

      每个表描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名称
      4. TABLE_TYPE String => 表类型。典型类型有"TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS"、"SYNONYM"。
      5. REMARKS String => 表的解释性注释(可能为null
      6. TYPE_CAT String => 类型目录(可能为null
      7. TYPE_SCHEM String => 类型模式(可能为null
      8. TYPE_NAME String => 类型名称(可能为null
      9. SELF_REFERENCING_COL_NAME String => 有类型表的指定“标识符”列的名称(可能为null
      10. REF_GENERATION String => 指定如何创建SELF_REFERENCING_COL_NAME中的值。值为"SYSTEM"、"USER"、"DERIVED"(可能为null

      注意:某些数据库可能不会返回所有表的信息。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      tableNamePattern - 表名称模式;必须与数据库中存储的表名称匹配
      types - 表类型列表,必须来自getTableTypes()返回的表类型列表;null返回所有类型
      返回:
      ResultSet - 每一行是一个表描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getSchemas

      ResultSet getSchemas() throws SQLException
      检索此数据库中可用的模式名称。结果按TABLE_CATALOGTABLE_SCHEM排序。

      模式列为:

      1. TABLE_SCHEM String => 模式名称
      2. TABLE_CATALOG String => 目录名称(可能为null
      返回:
      一个ResultSet对象,其中每一行是一个模式描述
      抛出:
      SQLException - 如果发生数据库访问错误
    • getCatalogs

      ResultSet getCatalogs() throws SQLException
      检索此数据库中可用的目录名称。结果按目录名称排序。

      目录列为:

      1. TABLE_CAT String => 目录名称
      返回:
      一个ResultSet对象,其中每一行有一个String列,即目录名称
      抛出:
      SQLException - 如果发生数据库访问错误
    • getTableTypes

      ResultSet getTableTypes() throws SQLException
      检索此数据库中可用的表类型。结果按表类型排序。

      表类型为:

      1. TABLE_TYPE String => 表类型。典型类型有"TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS"、"SYNONYM"。
      返回:
      一个ResultSet对象,其中每一行有一个String列,即表类型
      抛出:
      SQLException - 如果发生数据库访问错误
    • getColumns

      ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException
      检索指定目录中可用的表列的描述。

      仅返回与目录、模式、表和列名条件匹配的列描述。它们按TABLE_CATTABLE_SCHEMTABLE_NAMEORDINAL_POSITION排序。

      每个列描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名
      4. COLUMN_NAME String => 列名
      5. DATA_TYPE int => 来自java.sql.Types的SQL类型
      6. TYPE_NAME String => 数据源相关的类型名称,对于UDT,类型名称是完全限定的
      7. COLUMN_SIZE int => 列大小。
      8. BUFFER_LENGTH 未使用。
      9. DECIMAL_DIGITS int => 小数位数。对于不适用DECIMAL_DIGITS的数据类型,返回Null。
      10. NUM_PREC_RADIX int => 基数(通常为10或2)
      11. NULLABLE int => 是否允许NULL。
        • columnNoNulls - 可能不允许NULL
        • columnNullable - 绝对允许NULL
        • columnNullableUnknown - 不明确的可为null性
      12. REMARKS String => 描述列的注释(可能为null
      13. COLUMN_DEF String => 列的默认值,当值用单引号括起来时应解释为字符串(可能为null
      14. SQL_DATA_TYPE int => 未使用
      15. SQL_DATETIME_SUB int => 未使用
      16. CHAR_OCTET_LENGTH int => 对于char类型,列中的最大字节数
      17. ORDINAL_POSITION int => 表中列的索引(从1开始)
      18. IS_NULLABLE String => 使用ISO规则确定列的可为null性。
        • YES --- 如果列可以包含NULL
        • NO --- 如果列不能包含NULL
        • 空字符串 --- 如果列的可为null性未知
      19. SCOPE_CATALOG String => 引用属性范围的表的目录(如果DATA_TYPE不是REF,则为null
      20. SCOPE_SCHEMA String => 引用属性范围的表的模式(如果DATA_TYPE不是REF,则为null
      21. SCOPE_TABLE String => 引用属性范围的表名(如果DATA_TYPE不是REF,则为null
      22. SOURCE_DATA_TYPE short => 独特类型或用户生成的Ref类型的源类型,来自java.sql.Types的SQL类型(如果DATA_TYPE不是DISTINCT或用户生成的REF,则为null
      23. IS_AUTOINCREMENT String => 指示此列是否自动递增
        • YES --- 如果列是自动递增的
        • NO --- 如果列不是自动递增的
        • 空字符串 --- 如果无法确定列是否自动递增
      24. IS_GENERATEDCOLUMN String => 指示是否为生成的列
        • YES --- 如果这是一个生成的列
        • NO --- 如果这不是一个生成的列
        • 空字符串 --- 如果无法确定这是否是一个生成的列

      COLUMN_SIZE列指定给定列的列大小。对于数字数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回Null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      tableNamePattern - 表名称模式;必须与数据库中存储的表名称匹配
      columnNamePattern - 列名称模式;必须与数据库中存储的列名称匹配
      返回:
      ResultSet - 每行是一个列描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getColumnPrivileges

      ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) throws SQLException
      检索表列的访问权限描述。

      仅返回与列名条件匹配的权限。它们按COLUMN_NAME和PRIVILEGE排序。

      每个权限描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名
      4. COLUMN_NAME String => 列名
      5. GRANTOR String => 访问授权者(可能为null
      6. GRANTEE String => 访问授权者
      7. PRIVILEGE String => 访问名称(SELECT、INSERT、UPDATE、REFERENCES等)
      8. IS_GRANTABLE String => 如果授权者允许授予其他人,则为"YES";如果不允许,则为"NO";如果未知,则为null
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      columnNamePattern - 列名称模式;必须与数据库中存储的列名称匹配
      返回:
      ResultSet - 每行是一个列权限描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getTablePrivileges

      ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) throws SQLException
      检索目录中每个表的访问权限描述。请注意,表权限适用于表中的一个或多个列。假设此权限适用于所有列是错误的(对于某些系统可能是正确的,但并非对所有系统都是正确的)。

      仅返回与模式和表名条件匹配的权限。它们按TABLE_CATTABLE_SCHEMTABLE_NAMEPRIVILEGE排序。

      每个权限描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名
      4. GRANTOR String => 访问授权者(可能为null
      5. GRANTEE String => 访问授权者
      6. PRIVILEGE String => 访问名称(SELECT、INSERT、UPDATE、REFERENCES等)
      7. IS_GRANTABLE String => 如果授权者允许授予其他人,则为"YES";如果不允许,则为"NO";如果未知,则为null
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      tableNamePattern - 表名称模式;必须与数据库中存储的表名称匹配
      返回:
      ResultSet - 每行是一个表权限描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getBestRowIdentifier

      ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) throws SQLException
      检索表的最佳列集的描述,这些列唯一标识一行。它们按SCOPE排序。

      每个列描述具有以下列:

      1. SCOPE short => 结果的实际范围
        • bestRowTemporary - 非常临时,使用行时
        • bestRowTransaction - 在当前事务的剩余时间内有效
        • bestRowSession - 在当前会话的剩余时间内有效
      2. COLUMN_NAME String => 列名
      3. DATA_TYPE int => 来自java.sql.Types的SQL数据类型
      4. TYPE_NAME String => 数据源相关的类型名称,对于UDT,类型名称是完全限定的
      5. COLUMN_SIZE int => 精度
      6. BUFFER_LENGTH int => 未使用
      7. DECIMAL_DIGITS short => 刻度 - 对于不适用DECIMAL_DIGITS的数据类型,返回Null。
      8. PSEUDO_COLUMN short => 这是否是像Oracle ROWID这样的伪列
        • bestRowUnknown - 可能是伪列,也可能不是
        • bestRowNotPseudo - 不是伪列
        • bestRowPseudo - 是伪列

      COLUMN_SIZE列表示给定列的指定列大小。对于数字数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回Null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      scope - 感兴趣的范围;使用与SCOPE相同的值
      nullable - 包括可为空的列。
      返回:
      ResultSet - 每行是一个列描述
      抛出:
      SQLException - 如果发生数据库访问错误
    • getVersionColumns

      ResultSet getVersionColumns(String catalog, String schema, String table) throws SQLException
      检索表的列的描述,这些列在更新行中的任何值更新时会自动更新。它们是无序的。

      每个列描述具有以下列:

      1. SCOPE short => 未使用
      2. COLUMN_NAME String => 列名
      3. DATA_TYPE int => 来自java.sql.Types的SQL数据类型
      4. TYPE_NAME String => 数据源相关的类型名称
      5. COLUMN_SIZE int => 精度
      6. BUFFER_LENGTH int => 列值的长度(以字节为单位)
      7. DECIMAL_DIGITS short => 刻度 - 对于不适用DECIMAL_DIGITS的数据类型,返回Null。
      8. PSEUDO_COLUMN short => 是否是像Oracle ROWID这样的伪列
        • versionColumnUnknown - 可能是伪列,也可能不是
        • versionColumnNotPseudo - 不是伪列
        • versionColumnPseudo - 是伪列

      COLUMN_SIZE列表示给定列的指定列大小。对于数字数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回Null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      返回:
      一个ResultSet对象,其中每行是一个列描述
      抛出:
      SQLException - 如果发生数据库访问错误
    • getPrimaryKeys

      ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
      检索给定表的主键列的描述。它们按COLUMN_NAME排序。

      每个主键列描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名称
      4. COLUMN_NAME String => 列名
      5. KEY_SEQ short => 主键内的序列号(值为1表示主键的第一列,值为2表示主键内的第二列)。
      6. PK_NAME String => 主键名称(可能为null
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      返回:
      ResultSet - 每行是一个主键列描述
      抛出:
      SQLException - 如果发生数据库访问错误
    • getImportedKeys

      ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException
      检索由给定表的外键列引用的主键列的描述(由表导入的主键)。它们按PKTABLE_CAT、PKTABLE_SCHEM、PKTABLE_NAME和KEY_SEQ排序。

      每个主键列描述具有以下列:

      1. PKTABLE_CAT String => 导入的主键表目录(可能为null
      2. PKTABLE_SCHEM String => 导入的主键表模式(可能为null
      3. PKTABLE_NAME String => 导入的主键表名称
      4. PKCOLUMN_NAME String => 导入的主键列名
      5. FKTABLE_CAT String => 外键表目录(可能为null
      6. FKTABLE_SCHEM String => 外键表模式(可能为null
      7. FKTABLE_NAME String => 外键表名称
      8. FKCOLUMN_NAME String => 外键列名
      9. KEY_SEQ short => 外键内的序列号(值为1表示外键的第一列,值为2表示外键内的第二列)。
      10. UPDATE_RULE short => 当主键更新时外键发生的情况:
        • importedNoAction - 如果已导入主键,则不允许更新主键
        • importedKeyCascade - 更改导入的键以与主键更新一致
        • importedKeySetNull - 如果其主键已更新,则将导入的键更改为NULL
        • importedKeySetDefault - 如果其主键已更新,则将导入的键更改为默认值
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
      11. DELETE_RULE short => 主键删除时外键发生的情况。
        • importedKeyNoAction - 如果已导入主键,则不允许删除主键
        • importedKeyCascade - 删除导入已删除键的行
        • importedKeySetNull - 如果其主键已删除,则将导入的键更改为NULL
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
        • importedKeySetDefault - 如果其主键已删除,则将导入的键更改为默认值
      12. FK_NAME String => 外键名称(可能为null
      13. PK_NAME String => 主键名称(可能为null
      14. DEFERRABILITY short => 是否可以将外键约束的评估推迟到提交
        • importedKeyInitiallyDeferred - 请参阅SQL92以获取定义
        • importedKeyInitiallyImmediate - 请参阅SQL92以获取定义
        • importedKeyNotDeferrable - 请参阅SQL92以获取定义
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      返回:
      ResultSet - 每行是一个主键列描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getExportedKeys

      ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException
      检索引用给定表的主键列的外键列的描述(表导出的外键)。它们按照FKTABLE_CAT、FKTABLE_SCHEM、FKTABLE_NAME和KEY_SEQ的顺序排列。

      每个外键列描述具有以下列:

      1. PKTABLE_CAT 字符串 => 主键表目录(可能为null
      2. PKTABLE_SCHEM 字符串 => 主键表模式(可能为null
      3. PKTABLE_NAME 字符串 => 主键表名称
      4. PKCOLUMN_NAME 字符串 => 主键列名称
      5. FKTABLE_CAT 字符串 => 导出的外键表目录(可能为null
      6. FKTABLE_SCHEM 字符串 => 导出的外键表模式(可能为null
      7. FKTABLE_NAME 字符串 => 导出的外键表名称
      8. FKCOLUMN_NAME 字符串 => 导出的外键列名称
      9. KEY_SEQ 短整型 => 外键内的序列号(值为1表示外键的第一列,值为2表示外键的第二列)
      10. UPDATE_RULE 短整型 => 当主键更新时外键会发生什么变化:
        • importedNoAction - 如果已导入,则不允许更新主键
        • importedKeyCascade - 将导入的键更改为与主键更新一致
        • importedKeySetNull - 如果其主键已更新,则将导入的键更改为NULL
        • importedKeySetDefault - 如果其主键已更新,则将导入的键更改为默认值
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
      11. DELETE_RULE 短整型 => 当主键被删除时外键会发生什么变化。
        • importedKeyNoAction - 如果已导入,则不允许删除主键
        • importedKeyCascade - 删除导入已删除键的行
        • importedKeySetNull - 如果其主键已删除,则将导入的键更改为NULL
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
        • importedKeySetDefault - 如果其主键已删除,则将导入的键更改为默认值
      12. FK_NAME 字符串 => 外键名称(可能为null
      13. PK_NAME 字符串 => 主键名称(可能为null
      14. DEFERRABILITY 短整型 => 是否可以推迟外键约束的评估直到提交
        • importedKeyInitiallyDeferred - 请参阅SQL92的定义
        • importedKeyInitiallyImmediate - 请参阅SQL92的定义
        • importedKeyNotDeferrable - 请参阅SQL92的定义
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与数据库中存储的表名称匹配
      返回:
      一个ResultSet对象,其中每一行是一个外键列描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getCrossReference

      ResultSet getCrossReference(String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException
      检索引用给定外键表的主键或表示父表唯一约束的列的外键列的描述(可以是相同的表,也可以是不同的表)。从父表返回的列数必须与构成外键的列数相匹配。它们按照FKTABLE_CAT、FKTABLE_SCHEM、FKTABLE_NAME和KEY_SEQ的顺序排列。

      每个外键列描述具有以下列:

      1. PKTABLE_CAT 字符串 => 父键表目录(可能为null
      2. PKTABLE_SCHEM 字符串 => 父键表模式(可能为null
      3. PKTABLE_NAME 字符串 => 父键表名称
      4. PKCOLUMN_NAME 字符串 => 父键列名称
      5. FKTABLE_CAT 字符串 => 导出的外键表目录(可能为null
      6. FKTABLE_SCHEM 字符串 => 导出的外键表模式(可能为null
      7. FKTABLE_NAME 字符串 => 导出的外键表名称
      8. FKCOLUMN_NAME 字符串 => 导出的外键列名称
      9. KEY_SEQ 短整型 => 外键内的序列号(值为1表示外键的第一列,值为2表示外键的第二列)
      10. UPDATE_RULE 短整型 => 当父键更新时外键会发生什么变化:
        • importedNoAction - 如果已导入,则不允许更新父键
        • importedKeyCascade - 将导入的键更改为与父键更新一致
        • importedKeySetNull - 如果其父键已更新,则将导入的键更改为NULL
        • importedKeySetDefault - 如果其父键已更新,则将导入的键更改为默认值
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
      11. DELETE_RULE 短整型 => 当父键被删除时外键会发生什么变化。
        • importedKeyNoAction - 如果已导入,则不允许删除父键
        • importedKeyCascade - 删除导入已删除键的行
        • importedKeySetNull - 如果其主键已删除,则将导入的键更改为NULL
        • importedKeyRestrict - 与importedKeyNoAction相同(用于ODBC 2.x兼容性)
        • importedKeySetDefault - 如果其父键已删除,则将导入的键更改为默认值
      12. FK_NAME 字符串 => 外键名称(可能为null
      13. PK_NAME 字符串 => 父键名称(可能为null
      14. DEFERRABILITY 短整型 => 是否可以推迟外键约束的评估直到提交
        • importedKeyInitiallyDeferred - 请参阅SQL92的定义
        • importedKeyInitiallyImmediate - 请参阅SQL92的定义
        • importedKeyNotDeferrable - 请参阅SQL92的定义
      参数:
      parentCatalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示从选择条件中删除目录名称
      parentSchema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示从选择条件中删除模式名称
      parentTable - 导出键的表名称;必须与数据库中存储的表名称匹配
      foreignCatalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示从选择条件中删除目录名称
      foreignSchema - 模式名称;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示从选择条件中删除模式名称
      foreignTable - 导入键的表名称;必须与数据库中存储的表名称匹配
      返回:
      ResultSet - 每一行是一个外键列描述
      抛出:
      SQLException - 如果发生数据库访问错误
      参见:
    • getTypeInfo

      ResultSet getTypeInfo() throws SQLException
      检索此数据库支持的所有数据类型的描述。它们按DATA_TYPE顺序排列,然后按数据类型与相应的JDBC SQL类型的映射程度排序。

      如果数据库支持SQL不同类型,则getTypeInfo()将返回一行,TYPE_NAME为DISTINCT,DATA_TYPE为Types.DISTINCT。如果数据库支持SQL结构化类型,则getTypeInfo()将返回一行,TYPE_NAME为STRUCT,DATA_TYPE为Types.STRUCT。

      如果支持SQL不同或结构化类型,则可以从getUDTs()方法获取有关各个类型的信息。

      每种类型描述具有以下列:

      1. TYPE_NAME String => 类型名称
      2. DATA_TYPE int => 来自java.sql.Types的SQL数据类型
      3. PRECISION int => 最大精度
      4. LITERAL_PREFIX String => 用于引用文字的前缀(可能为null
      5. LITERAL_SUFFIX String => 用于引用文字的后缀(可能为null
      6. CREATE_PARAMS String => 用于创建类型的参数(可能为null
      7. NULLABLE short => 是否可以使用NULL值。
        • typeNoNulls - 不允许NULL值
        • typeNullable - 允许NULL值
        • typeNullableUnknown - 不确定是否可为NULL
      8. CASE_SENSITIVE boolean=> 是否区分大小写。
      9. SEARCHABLE short => 是否可以基于此类型使用“WHERE”:
        • typePredNone - 不支持
        • typePredChar - 仅支持WHERE .. LIKE
        • typePredBasic - 除了WHERE .. LIKE外都支持
        • typeSearchable - 对所有WHERE ..都支持
      10. UNSIGNED_ATTRIBUTE boolean => 是否为无符号。
      11. FIXED_PREC_SCALE boolean => 是否可以是货币值。
      12. AUTO_INCREMENT boolean => 是否可用于自动递增值。
      13. LOCAL_TYPE_NAME String => 类型名称的本地化版本(可能为null
      14. MINIMUM_SCALE short => 支持的最小刻度
      15. MAXIMUM_SCALE short => 支持的最大刻度
      16. SQL_DATA_TYPE int => 未使用
      17. SQL_DATETIME_SUB int => 未使用
      18. NUM_PREC_RADIX int => 通常为2或10

      PRECISION列表示服务器支持的给定数据类型的最大列大小。对于数字数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回Null。

      返回:
      每一行都是一个SQL类型描述的ResultSet对象
      抛出:
      SQLException - 如果发生数据库访问错误
    • getIndexInfo

      ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) throws SQLException
      检索给定表的索引和统计信息的描述。它们按NON_UNIQUE、TYPE、INDEX_NAME和ORDINAL_POSITION排序。

      每个索引列描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名称
      4. NON_UNIQUE boolean => 索引值是否可以是非唯一的。当TYPE为tableIndexStatistic时为false
      5. INDEX_QUALIFIER String => 索引目录(可能为null);当TYPE为tableIndexStatistic时为null
      6. INDEX_NAME String => 索引名称;当TYPE为tableIndexStatistic时为null
      7. TYPE short => 索引类型:
        • tableIndexStatistic - 这标识与表的索引描述一起返回的表统计信息
        • tableIndexClustered - 这是一个聚集索引
        • tableIndexHashed - 这是一个哈希索引
        • tableIndexOther - 这是其他类型的索引
      8. ORDINAL_POSITION short => 索引内的列序号;当TYPE为tableIndexStatistic时为零
      9. COLUMN_NAME String => 列名称;当TYPE为tableIndexStatistic时为null
      10. ASC_OR_DESC String => 列排序顺序,“A” => 升序,“D” => 降序,如果不支持排序顺序,则可能为null;当TYPE为tableIndexStatistic时为null
      11. CARDINALITY long => 当TYPE为tableIndexStatistic时,这是表中的行数;否则,它是索引中唯一值的数量。
      12. PAGES long => 当TYPE为tableIndexStatistic时,这是表使用的页数,否则是当前索引使用的页数。
      13. FILTER_CONDITION String => 过滤条件,如果有的话(可能为null
      参数:
      catalog - 目录名称;必须与存储在此数据库中的目录名称匹配;""检索没有目录的内容;null表示不应使用目录名称来缩小搜索范围
      schema - 模式名称;必须与存储在此数据库中的模式名称匹配;""检索没有模式的内容;null表示不应使用模式名称来缩小搜索范围
      table - 表名称;必须与存储在此数据库中的表名称匹配
      unique - 当为true时,仅返回唯一值的索引;当为false时,返回无论是否唯一的索引
      approximate - 当为true时,结果允许反映近似或过时值;当为false时,要求结果准确
      返回:
      ResultSet - 每一行都是一个索引列描述
      抛出:
      SQLException - 如果发生数据库访问错误
    • supportsResultSetType

      boolean supportsResultSetType(int type) throws SQLException
      检索此数据库是否支持给定的结果集类型。
      参数:
      type - 在java.sql.ResultSet中定义
      返回:
      如果支持,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.2
      参见:
    • supportsResultSetConcurrency

      boolean supportsResultSetConcurrency(int type, int concurrency) throws SQLException
      检索此数据库是否支持与给定结果集类型结合使用的给定并发类型。
      参数:
      type - 在java.sql.ResultSet中定义
      concurrency - 在java.sql.ResultSet中定义的类型
      返回:
      如果支持,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.2
      参见:
    • ownUpdatesAreVisible

      boolean ownUpdatesAreVisible(int type) throws SQLException
      检索给定ResultSet对象类型的结果集的更新是否可见。
      参数:
      type - ResultSet类型;为ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE之一
      返回:
      如果给定结果集类型的更新可见,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.2
    • ownDeletesAreVisible

      boolean ownDeletesAreVisible(int type) throws SQLException
      检索结果集的删除是否可见。
      参数:
      type - ResultSet类型;为ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE之一
      返回:
      如果给定结果集类型的删除可见,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.2
    • ownInsertsAreVisible

      boolean ownInsertsAreVisible(int type) throws SQLException
      检索结果集的插入是否可见。
      参数:
      type - ResultSet类型;为ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE之一
      返回:
      如果给定结果集类型的插入可见,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.2
    • othersUpdatesAreVisible

      boolean othersUpdatesAreVisible(int type) throws SQLException
      检索其他人所做的更新是否可见。
      Parameters:
      type - the ResultSet type; one of ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, or ResultSet.TYPE_SCROLL_SENSITIVE
      Returns:
      true if updates made by others are visible for the given result set type; false otherwise
      Throws:
      SQLException - if a database access error occurs
      Since:
      1.2
    • othersDeletesAreVisible

      boolean othersDeletesAreVisible(int type) throws SQLException
      Retrieves whether deletes made by others are visible.
      参数:
      type - ResultSet 类型; 可选值为 ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, 或 ResultSet.TYPE_SCROLL_SENSITIVE
      返回值:
      true 如果其他人所做的删除对给定的结果集类型可见; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • othersInsertsAreVisible

      boolean othersInsertsAreVisible(int type) throws SQLException
      检索其他人所做的插入是否可见。
      参数:
      type - ResultSet 类型; 可选值为 ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, 或 ResultSet.TYPE_SCROLL_SENSITIVE
      返回值:
      true 如果其他人所做的插入对给定的结果集类型可见; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • updatesAreDetected

      boolean updatesAreDetected(int type) throws SQLException
      检索是否可以通过调用方法 ResultSet.rowUpdated 检测到可见的行更新。
      参数:
      type - ResultSet 类型; 可选值为 ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, 或 ResultSet.TYPE_SCROLL_SENSITIVE
      返回值:
      true 如果结果集类型检测到更改; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • deletesAreDetected

      boolean deletesAreDetected(int type) throws SQLException
      检索是否可以通过调用方法 ResultSet.rowDeleted 检测到可见的行删除。如果方法 deletesAreDetected 返回 false,则表示已从结果集中删除了删除的行。
      参数:
      type - ResultSet 类型; 可选值为 ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, 或 ResultSet.TYPE_SCROLL_SENSITIVE
      返回值:
      true 如果结果集类型检测到删除; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • insertsAreDetected

      boolean insertsAreDetected(int type) throws SQLException
      检索是否可以通过调用方法 ResultSet.rowInserted 检测到可见的行插入。
      参数:
      type - ResultSet 类型; 可选值为 ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, 或 ResultSet.TYPE_SCROLL_SENSITIVE
      返回值:
      true 如果指定的结果集类型检测到更改; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • supportsBatchUpdates

      boolean supportsBatchUpdates() throws SQLException
      检索此数据库是否支持批量更新。
      返回值:
      true 如果此数据库支持批量更新; 否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • getUDTs

      ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) throws SQLException
      检索特定模式中定义的用户定义类型(UDT)的描述。特定模式的UDT可能具有类型 JAVA_OBJECTSTRUCTDISTINCT

      仅返回与目录、模式、类型名称和类型条件匹配的类型。它们按照 DATA_TYPETYPE_CATTYPE_SCHEMTYPE_NAME 排序。类型名称参数可以是完全限定名称。在这种情况下,将忽略目录和schemaPattern参数。

      每个类型描述具有以下列:

      1. TYPE_CAT 字符串 => 类型的目录(可能为 null
      2. TYPE_SCHEM 字符串 => 类型的模式(可能为 null
      3. TYPE_NAME 字符串 => 类型名称
      4. CLASS_NAME 字符串 => Java 类名
      5. DATA_TYPE 整数 => 在java.sql.Types中定义的类型值。其中之一为JAVA_OBJECT、STRUCT或DISTINCT
      6. REMARKS 字符串 => 对类型的解释性注释
      7. BASE_TYPE 短整型 => DISTINCT类型的源类型或实现结构化类型的用户生成引用类型的SELF_REFERENCING_COLUMN的类型代码,如java.sql.Types中定义的(如果DATA_TYPE不是DISTINCT或不是具有REFERENCE_GENERATION = USER_DEFINED的STRUCT)

      注意: 如果驱动程序不支持UDT,则返回一个空结果集。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      typeNamePattern - 类型名称模式;必须与数据库中存储的类型名称匹配;可以是完全限定名称
      types - 要包括的用户定义类型(JAVA_OBJECT、STRUCT或DISTINCT)列表;null返回所有类型
      返回值:
      每行描述一个UDT的 ResultSet 对象
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
      参见:
    • getConnection

      Connection getConnection() throws SQLException
      检索生成此元数据对象的连接。
      返回值:
      生成此元数据对象的连接
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.2
    • supportsSavepoints

      boolean supportsSavepoints() throws SQLException
      检索此数据库是否支持保存点。
      返回值:
      true 如果支持保存点;否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.4
    • supportsNamedParameters

      boolean supportsNamedParameters() throws SQLException
      检索此数据库是否支持对可调用语句使用命名参数。
      返回值:
      true 如果支持命名参数;否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.4
    • supportsMultipleOpenResults

      boolean supportsMultipleOpenResults() throws SQLException
      检索是否可能从 CallableStatement 对象同时返回多个 ResultSet 对象。
      返回值:
      true 如果 CallableStatement 对象可以同时返回多个 ResultSet 对象;否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.4
    • supportsGetGeneratedKeys

      boolean supportsGetGeneratedKeys() throws SQLException
      检索是否可以在执行语句后检索自动生成的键
      返回值:
      true 如果可以在执行语句后检索自动生成的键;否则为 false

      如果返回 true,JDBC驱动程序必须至少支持SQL INSERT语句的返回自动生成的键

      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.4
    • getSuperTypes

      ResultSet getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) throws SQLException
      检索在此数据库中特定模式中定义的用户定义类型(UDT)层次结构的描述。仅对直接超类型/子类型关系进行建模。

      仅返回与目录、模式和类型名称匹配的UDT的超类型信息。类型名称参数可以是完全限定名称。当提供的UDT名称是完全限定名称时,将忽略目录和schemaPattern参数。

      如果UDT没有直接超类型,则不会在此处列出。此方法返回的 ResultSet 对象的一行描述指定的UDT和直接超类型。一行具有以下列:

      1. TYPE_CAT 字符串 => UDT的目录(可能为 null
      2. TYPE_SCHEM 字符串 => UDT的模式(可能为 null
      3. TYPE_NAME 字符串 => UDT的类型名称
      4. SUPERTYPE_CAT 字符串 => 直接超类型的目录(可能为 null
      5. SUPERTYPE_SCHEM 字符串 => 直接超类型的模式(可能为 null
      6. SUPERTYPE_NAME 字符串 => 直接超类型的名称

      注意: 如果驱动程序不支持类型层次结构,则返回一个空结果集。

      参数:
      catalog - 目录名称;""检索没有目录的;null表示从选择条件中删除目录名称
      schemaPattern - 模式名称模式;""检索没有模式的
      typeNamePattern - UDT名称模式;可以是完全限定名称
      返回值:
      一个 ResultSet 对象,其中一行提供有关指定UDT的信息
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.4
      参见:
    • getSuperTables

      ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern) throws SQLException
      检索在此数据库中定义的特定模式中表层次结构的描述。

      仅返回与目录、模式和表名称匹配的表的超表信息。如果表名称参数是完全限定名称,则忽略目录和schemaPattern参数。如果表没有超表,则不会在此处列出。超表必须在与子表相同的目录和模式中定义。因此,类型描述不需要包含超表的此信息。

      每个类型描述具有以下列:

      1. TABLE_CAT String => 类型的目录(可能为null
      2. TABLE_SCHEM String => 类型的模式(可能为null
      3. TABLE_NAME String => 类型名称
      4. SUPERTABLE_NAME String => 直接超类型的名称

      注意:如果驱动程序不支持类型层次结构,则返回一个空结果集。

      参数:
      catalog - 目录名称;""检索没有目录的;null表示从选择条件中删除目录名称
      schemaPattern - 模式名称模式;""检索没有模式的
      tableNamePattern - 表名称模式;可以是完全限定名称
      返回:
      一个ResultSet对象,其中每一行都是一个类型描述
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
      参见:
    • getAttributes

      ResultSet getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) throws SQLException
      检索给定模式和目录中可用的用户定义类型(UDT)的给定类型的给定属性的描述。

      仅返回与目录、模式、类型和属性名称条件匹配的UDT的属性描述。它们按TYPE_CATTYPE_SCHEMTYPE_NAMEORDINAL_POSITION排序。此描述不包含继承的属性。

      返回的ResultSet对象具有以下列:

      1. TYPE_CAT String => 类型目录(可能为null
      2. TYPE_SCHEM String => 类型模式(可能为null
      3. TYPE_NAME String => 类型名称
      4. ATTR_NAME String => 属性名称
      5. DATA_TYPE int => 属性类型的SQL类型,来自java.sql.Types
      6. ATTR_TYPE_NAME String => 数据源相关的类型名称。对于UDT,类型名称是完全限定的。对于REF,类型名称是完全限定的,并表示引用类型的目标类型。
      7. ATTR_SIZE int => 列大小。对于char或日期类型,这是字符的最大数量;对于数字或十进制类型,这是精度。
      8. DECIMAL_DIGITS int => 小数位数。对于不适用DECIMAL_DIGITS的数据类型,返回null。
      9. NUM_PREC_RADIX int => 基数(通常为10或2)
      10. NULLABLE int => 是否允许NULL
        • attributeNoNulls - 可能不允许NULL值
        • attributeNullable - 绝对允许NULL值
        • attributeNullableUnknown - 不明确的可为NULL值
      11. REMARKS String => 描述列的注释(可能为null
      12. ATTR_DEF String => 默认值(可能为null
      13. SQL_DATA_TYPE int => 未使用
      14. SQL_DATETIME_SUB int => 未使用
      15. CHAR_OCTET_LENGTH int => 对于char类型,列中的最大字节数
      16. ORDINAL_POSITION int => UDT中属性的索引(从1开始)
      17. IS_NULLABLE String => 使用ISO规则确定属性的可为NULL性。
        • YES --- 如果属性可以包含NULL值
        • NO --- 如果属性不能包含NULL值
        • 空字符串 --- 如果属性的可为NULL性未知
      18. SCOPE_CATALOG String => 引用属性范围的表的目录(如果DATA_TYPE不是REF,则为null
      19. SCOPE_SCHEMA String => 引用属性范围的表的模式(如果DATA_TYPE不是REF,则为null
      20. SCOPE_TABLE String => 引用属性范围的表的表名(如果DATA_TYPE不是REF,则为null
      21. SOURCE_DATA_TYPE short => 不同类型或用户生成的Ref类型的源类型,来自java.sql.Types的SQL类型(如果DATA_TYPE不是DISTINCT或用户生成的REF,则为null
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      typeNamePattern - 类型名称模式;必须与数据库中存储的类型名称匹配
      attributeNamePattern - 属性名称模式;必须与数据库中声明的属性名称匹配
      返回:
      一个ResultSet对象,其中每一行都是一个属性描述
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
      参见:
    • supportsResultSetHoldability

      boolean supportsResultSetHoldability(int holdability) throws SQLException
      检索此数据库是否支持给定的结果集可保持性。
      参数:
      holdability - 以下常量之一:ResultSet.HOLD_CURSORS_OVER_COMMITResultSet.CLOSE_CURSORS_AT_COMMIT
      返回:
      如果支持,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
      参见:
    • getResultSetHoldability

      int getResultSetHoldability() throws SQLException
      检索此数据库的ResultSet对象的默认可保持性。
      返回:
      默认可保持性;可以是ResultSet.HOLD_CURSORS_OVER_COMMITResultSet.CLOSE_CURSORS_AT_COMMIT
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getDatabaseMajorVersion

      int getDatabaseMajorVersion() throws SQLException
      检索底层数据库的主要版本号。
      返回:
      底层数据库的主要版本
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getDatabaseMinorVersion

      int getDatabaseMinorVersion() throws SQLException
      检索底层数据库的次要版本号。
      返回:
      底层数据库的次要版本
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getJDBCMajorVersion

      int getJDBCMajorVersion() throws SQLException
      检索此驱动程序的JDBC主要版本号。
      返回:
      JDBC版本主要号
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getJDBCMinorVersion

      int getJDBCMinorVersion() throws SQLException
      检索此驱动程序的JDBC次要版本号。
      返回:
      JDBC版本次要号
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getSQLStateType

      int getSQLStateType() throws SQLException
      指示SQLException.getSQLState返回的SQLSTATE是X/Open(现在称为Open Group)SQL CLI还是SQL:2003。
      返回:
      SQLSTATE的类型;其中之一:sqlStateXOpen或sqlStateSQL
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • locatorsUpdateCopy

      boolean locatorsUpdateCopy() throws SQLException
      指示对LOB所做的更新是在副本上进行还是直接在LOB上进行。
      返回:
      如果更新是在LOB的副本上进行,则为true;如果更新是直接在LOB上进行,则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • supportsStatementPooling

      boolean supportsStatementPooling() throws SQLException
      检索此数据库是否支持语句池。
      返回:
      如果支持,则为true;否则为false
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.4
    • getRowIdLifetime

      RowIdLifetime getRowIdLifetime() throws SQLException
      指示此数据源是否支持SQL ROWID类型,以及RowId对象保持有效的生命周期。
      返回:
      表示RowId的生命周期的状态
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6
    • getSchemas

      ResultSet getSchemas(String catalog, String schemaPattern) throws SQLException
      检索此数据库中可用的模式名称。结果按TABLE_CATALOGTABLE_SCHEM排序。

      模式列为:

      1. TABLE_SCHEM String => 模式名称
      2. TABLE_CATALOG String => 目录名称(可能为null
      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;"" 检索没有目录的内容;null 表示不应使用目录名称来缩小搜索范围。
      schemaPattern - 模式名称;必须与数据库中存储的模式名称匹配;null 表示不应使用模式名称来缩小搜索范围。
      返回:
      每一行都是一个模式描述的 ResultSet 对象
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
      参见:
    • supportsStoredFunctionsUsingCallSyntax

      boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException
      检索此数据库是否支持使用存储过程转义语法调用用户定义的或供应商函数。
      返回:
      如果支持,则为 true;否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
    • autoCommitFailureClosesAllResultSets

      boolean autoCommitFailureClosesAllResultSets() throws SQLException
      检索当 autoCommit 为 true 时,SQLException 是否表示所有打开的 ResultSet 都已关闭,即使是可保持的 ResultSet。当 autoCommit 为 true 时发生 SQLException,JDBC 驱动程序如何响应是供应商特定的,可能是提交操作、回滚操作,或者既不提交也不回滚。这种差异的潜在结果在于是否关闭可保持的 ResultSet。
      返回:
      如果是,则为 true;否则为 false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
    • getClientInfoProperties

      ResultSet getClientInfoProperties() throws SQLException
      检索驱动程序支持的客户端信息属性列表。结果集包含以下列
      1. NAME String=> 客户端信息属性的名称
      2. MAX_LEN int=> 属性值的最大长度
      3. DEFAULT_VALUE String=> 属性的默认值
      4. DESCRIPTION String=> 属性的描述。通常包含此属性在数据库中存储位置的信息。

      ResultSet 按 NAME 列排序

      返回:
      一个 ResultSet 对象;每一行是一个支持的客户端信息属性
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
    • getFunctions

      ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException
      检索给定目录中可用的系统和用户函数的描述。

      仅返回与模式和函数名称条件匹配的系统和用户函数描述。它们按 FUNCTION_CATFUNCTION_SCHEMFUNCTION_NAMESPECIFIC_ NAME 排序。

      每个函数描述具有以下列:

      1. FUNCTION_CAT String => 函数目录(可能为 null
      2. FUNCTION_SCHEM String => 函数模式(可能为 null
      3. FUNCTION_NAME String => 函数名称。这是用于调用函数的名称
      4. REMARKS String => 函数的解释性注释
      5. FUNCTION_TYPE short => 函数类型:
        • functionResultUnknown - 无法确定是否返回返回值或表
        • functionNoTable- 不返回表
        • functionReturnsTable - 返回表
      6. SPECIFIC_NAME String => 在其模式中唯一标识此函数的名称。这是用户指定的或 DBMS 生成的名称,可能与 FUNCTION_NAME 不同,例如重载函数

      用户可能没有权限执行 getFunctions 返回的任何函数

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;"" 检索没有目录的内容;null 表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;"" 检索没有模式的内容;null 表示不应使用模式名称来缩小搜索范围
      functionNamePattern - 过程名称模式;必须与数据库中存储的函数名称匹配
      返回:
      ResultSet - 每一行是一个函数描述
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
      参见:
    • getFunctionColumns

      ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) throws SQLException
      检索给定目录的系统或用户函数参数和返回类型的描述。

      仅返回与模式、函数和参数名称条件匹配的描述。它们按 FUNCTION_CATFUNCTION_SCHEMFUNCTION_NAMESPECIFIC_ NAME 排序。其中,如果有返回值,则首先是返回值。接下来是按调用顺序的参数描述。列描述按列号顺序排列。

      ResultSet 中的每一行是一个参数描述、列描述或返回类型描述,具有以下字段:

      1. FUNCTION_CAT String => 函数目录(可能为 null
      2. FUNCTION_SCHEM String => 函数模式(可能为 null
      3. FUNCTION_NAME String => 函数名称。这是用于调用函数的名称
      4. COLUMN_NAME String => 列/参数名称
      5. COLUMN_TYPE Short => 列/参数类型:
        • functionColumnUnknown - 无人知道
        • functionColumnIn - 输入参数
        • functionColumnInOut - 输入输出参数
        • functionColumnOut - 输出参数
        • functionColumnReturn - 函数返回值
        • functionColumnResult - 表示参数或列是 ResultSet 中的列
      6. DATA_TYPE int => 来自 java.sql.Types 的 SQL 类型
      7. TYPE_NAME String => SQL 类型名称,对于 UDT 类型,类型名称是完全限定的
      8. PRECISION int => 精度
      9. LENGTH int => 数据的字节长度
      10. SCALE short => 刻度 - 对于不适用 SCALE 的数据类型,返回 null。
      11. RADIX short => 基数
      12. NULLABLE short => 是否可以包含 NULL。
        • functionNoNulls - 不允许 NULL 值
        • functionNullable - 允许 NULL 值
        • functionNullableUnknown - 不明确的可为 NULL
      13. REMARKS String => 描述列/参数的注释
      14. CHAR_OCTET_LENGTH int => 二进制和字符参数或列的最大长度。对于其他数据类型,返回值为 NULL
      15. ORDINAL_POSITION int => 从 1 开始的输入和输出参数的序数位置。如果此行描述函数的返回值,则返回值为 0。对于结果集列,它是结果集中列的序数位置,从 1 开始。
      16. IS_NULLABLE String => 使用 ISO 规则确定参数或列的可为 NULL。
        • YES --- 如果参数或列可以包含 NULL
        • NO --- 如果参数或列不允许包含 NULL
        • 空字符串 --- 如果参数或列的可为 NULL 未知
      17. SPECIFIC_NAME String => 在其模式中唯一标识此函数的名称。这是用户指定的或 DBMS 生成的名称,可能与 FUNCTION_NAME 不同,例如重载函数

      PRECISION 列表示给定参数或列的指定列大小。对于数字数据,这是最大精度。对于字符数据,这是字符长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于 ROWID 数据类型,这是字节长度。对于不适用列大小的数据类型,返回 null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;"" 检索没有目录的内容;null 表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;"" 检索没有模式的内容;null 表示不应使用模式名称来缩小搜索范围
      functionNamePattern - 过程名称模式;必须与数据库中存储的函数名称匹配
      columnNamePattern - 参数名称模式;必须与数据库中存储的参数或列名称匹配
      返回:
      ResultSet - 每一行描述一个用户函数参数、列或返回类型
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.6
      参见:
    • getPseudoColumns

      ResultSet getPseudoColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException
      检索指定目录和模式中给定表中可用的伪列或隐藏列的描述。伪列或隐藏列可能并不总是存储在表中,并且除非在查询的最外层SELECT列表中指定它们,否则在ResultSet中是不可见的。伪列或隐藏列可能不一定可以被修改。如果没有伪列或隐藏列,则返回一个空的ResultSet。

      仅返回与目录、模式、表和列名条件匹配的列描述。它们按TABLE_CATTABLE_SCHEMTABLE_NAMECOLUMN_NAME排序。

      每个列描述具有以下列:

      1. TABLE_CAT String => 表目录(可能为null
      2. TABLE_SCHEM String => 表模式(可能为null
      3. TABLE_NAME String => 表名
      4. COLUMN_NAME String => 列名
      5. DATA_TYPE int => 来自java.sql.Types的SQL类型
      6. COLUMN_SIZE int => 列大小。
      7. DECIMAL_DIGITS int => 小数位数。对于不适用DECIMAL_DIGITS的数据类型,返回Null。
      8. NUM_PREC_RADIX int => 基数(通常为10或2)
      9. COLUMN_USAGE String => 列的允许使用方式。返回的值将对应于PseudoColumnUsage.name()返回的枚举名称
      10. REMARKS String => 描述列的注释(可能为null
      11. CHAR_OCTET_LENGTH int => 对于char类型,列中的最大字节数
      12. IS_NULLABLE String => 使用ISO规则确定列的可空性。
        • YES --- 如果列可以包含NULL
        • NO --- 如果列不能包含NULL
        • 空字符串 --- 如果列的可空性未知

      COLUMN_SIZE列指定给定列的列大小。对于数字数据,这是最大精度。对于字符数据,这是字符的长度。对于日期时间数据类型,这是字符串表示的字符长度(假设分数秒组件的最大允许精度)。对于二进制数据,这是字节长度。对于ROWID数据类型,这是字节长度。对于不适用列大小的数据类型,返回Null。

      参数:
      catalog - 目录名称;必须与数据库中存储的目录名称匹配;""检索没有目录的;null表示不应使用目录名称来缩小搜索范围
      schemaPattern - 模式名称模式;必须与数据库中存储的模式名称匹配;""检索没有模式的;null表示不应使用模式名称来缩小搜索范围
      tableNamePattern - 表名称模式;必须与数据库中存储的表名称匹配
      columnNamePattern - 列名称模式;必须与数据库中存储的列名称匹配
      返回:
      ResultSet - 每行是一个列描述
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.7
      参见:
    • generatedKeyAlwaysReturned

      boolean generatedKeyAlwaysReturned() throws SQLException
      检索生成的键是否总是在指定的自动生成键列的列名或索引有效且语句成功时返回。返回的键可能基于自动生成键的列,也可能不是。有关详细信息,请参阅您的JDBC驱动程序文档。
      返回:
      如果是,则返回true;否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.7
    • getMaxLogicalLobSize

      default long getMaxLogicalLobSize() throws SQLException
      检索此数据库允许用于LOB的逻辑大小的最大字节数。

      默认实现将返回0

      返回:
      允许的最大字节数;结果为零表示没有限制或限制未知
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.8
    • supportsRefCursors

      default boolean supportsRefCursors() throws SQLException
      检索此数据库是否支持REF CURSOR。

      默认实现将返回false

      返回:
      如果此数据库支持REF CURSOR,则返回true;否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      1.8
    • supportsSharding

      default boolean supportsSharding() throws SQLException
      检索此数据库是否支持分片。
      实现要求:
      默认实现将返回false
      返回:
      如果此数据库支持分片,则返回true;否则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
      自版本:
      9