编程那点事编程那点事

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

JDBC获取数据库信息:获取表中各列的信息

ResultSet getColumns(String catalog,String schemaPattern,String tableNamePattern,String columNamePattern) throws SQLException

    用于获得目录catalog中可用的数据表的数据列的信息

    参数列表:

  • Catalog:表示一个目录名

  • schemaPattern:表示模式名类型

  • tableNamePattern:表示数据名类型

  • columnNamePattern:表示数据列名类型

    返回值是一个ResultSet对象,其中每一行描述一个数据列。每个数据列包含以下属性:

  1. TABLE_CAT:表示数据表的目录名

  2. TABLE_SCHEM:表示数据表的模式名

  3. TABLE_NAME:表示数据表名

  4. COLUMN_NAME:表示数据列名

  5. DATA_TYPE:表示java.sql.Types中的SQL类型,是一个short型数值。

  6. TYPE_NAME:表示数据源使用的本地类型名

  7. COLUMN_SIZE:表示数据列大小的一个int型数据。对于char或者date类型来说,表示字符串的最大长度;对于numeric或者decimal类型来说,表示精度。

  8. BUFFER_LENGTH:表示当前不使用

  9. DECIMAL_DIGITS:表示小数数字的个数,是一个int型数据。

  10. NUM_PREC_RADIX:表示列的数据的基数,通常为二进制或十进制。

  11. NULLABLE:表示数据列可否为null,是一个int型整数值。可能值如下:

    • columnNoNulls可能不允许使用null

    • columnNullable一定不允许使用null

    • columnNullableUnknow不知道是否允许使用null

  12. REMARKS:包含数据列的一个解释性注释,可以为null

  13. COLUMN_DEF:列的默认值,可以为null。

  14. SQL_DATA_TYPE:整型数值,当前不使用。

  15. SQL_DATATIME_SUB:整型数值,当前不使用。

  16. CHAR_OCTET_LENGTH:表示数据列的最大字节个数,仅针对CHAR类型。

  17. ORDINAL_POSITION:表示数据表中的数据列的序号,从1开始。

  18. IS_NULLABLE:字符串对象,若为“YES”,说明这个列允许使用null值;若为“NO”,则说明数据列不允许使用null值;若为空字符串“”,则表示可否使用null值未知。

ResultSet getColumnPrivileges(String catalog,String schema,String table,String columnNamePattern) throws SQLException

    用于获取数据列的访问权限的信息。

    参数列表

  •             Catalog:表示一个目录名

  •             schema:表示模式名类型

  •             table:表示一个表名

  •             columnNamePattern:表示一个共匹配的列名模式

    如果列名表符合目录名,并且列名表的模式符合模式参数,列的表名符合table参数,列名与columnNamePattern参数匹配,那么函数将返回这些列的访问权限,返回的信息是按照列名和列的权限排序的;函数返回的权限除了可以看作是某个列的权限之外,还可以看作是一个表的权限。

    函数的返回值是一个ResultSet对象,每一行都是对一个列的访问权限的描述。

    对列的访问权限的描述包括以下属性:

  1.             TABLE_CAT:表示数据表的目录名

  2.             TABLE_SCHEM:表示数据表的模式名

  3.             TABLE_NAME:表示数据表名

  4.             COLUMN_NAME:表示数据列名

  5.             COLUMN_NAME:表示数据列名

  6.             GRANTOR:表示权限的授权人,可以为null

  7.             GRANTEE:表示被授权者,可以为null

  8.             PRIVILEGE:表示可以访问的权限,如select,insert,update,reference等。

  9.             IS_GRANTABLE:表示指名被授权者是否有权限将权限转让给他人。若为“YES”,则可以再次转让权限,若为“NO”,则不可转让。若为null,则未知。

未经允许不得转载: 技术文章 » Java编程 » JDBC获取数据库信息:获取表中各列的信息