JDBC技术规范提供了三个开发过程的常用接口:连接、语句和结果集。 对于每个接口,JDBC规范都提供相应的接口描述对象,即XXX元数据系列描述对象。 数据库元数据和结果元数据是获取有关数据库元数据的信息的两个常见接口。 本节介绍了数据库元数据接口如何获取元数据。
数据库元数据接口的常用方法:
获取表信息:获取表
获取表列信息:获取列
获取表主键信息: getPrimaryKeys
获取表索引信息: getIndexInfo
这里分别介绍了如何使用这些方法。 在演示之前,必须首先编写数据库连接操作代码,创建JDBC工具类,然后添加类似于以下内容的代码
获取数据库元数据对象
必须使用使用Connection对象的getMetaData方法检索DataBaseMeta对象。 此示例说明如何获取DataBaseMetadata对象,以及如何从DataBaseMetadata对象获取数据库信息:
程序执行控制台显示与以下内容类似的输出
2 getTables
原型:
resultsetdatabasemetadata.get tables (字符串目录,字符串方案参数,字符串表名称参数,字符串[ ]类型) )
功能说明:获取指定参数的表信息
参数说明:
参数catalog:目录名称。 通常为空,在MySQL中表示数据库名称
参数schemaPattern:数据库名称的模式匹配,null表示不会缩小搜索范围的数据库名称,对于oracle而言是用户名
参数tableNamePattern:表名模式匹配字符、
参数types:是包含值的表类型列表,null返回所有类型
看看下面的演示示例。
演示的结果如下图所示
3 getColumns
功能说明:获取指定表的列信息。
原型:
resultsetdatabasemetadatagetcolumns (字符串目录,字符串方案参数,字符串表名称参数,字符串列名称参数)
参数说明:
参数catalog:目录名称。 通常为空,在MySQL中表示数据库名称
参数schemaPattern:数据库名称的模式匹配,null表示不会缩小搜索范围的数据库名称,对于oracle而言是用户名
参数tableNamePattern:表名模式匹配字符
参数columnNamePattern:列名模式匹配字符
看看演示的例子
样品的执行效果如下所示
4 getPrimaryKeys
功能说明:获取指定表的主键信息。
原型:
resultsetdatabasemetadatagetprimarykeys (字符串目录,字符串方案,字符串表)。
参数说明:
参数catalog :目录名称。 通常为空,在MySQL中表示数据库名称
参数schema :模式名称
参数table :数据库表名
注:请务必指定表名。 如果不指定,则没有任何返回值。
请看一个例子
示例执行效果
5 getIndexInfo
功能说明:获取指定表的索引和统计信息的说明
原型:
resultsetgetindexinfo (字符串目录,字符串方案,字符串表,布尔唯一,布尔应用程序) )。
参数说明:
参数catalog:目录名称。 通常为空,在MySQL中表示数据库名称
参数schema:模式名称
参数table:数据库表名
参数unique:如果此参数为true,则只返回唯一值的索引; 如果此参数为false,则返回所有索引
参数approximate :如果此参数为true,则允许结果为接近的数据值或这些数据值以外的值。 如果该参数为false,则要求结果是正确的结果;
请看一个例子
以下是执行效果的示例
注意:
) JDBC元数据的操作会消耗性能,请尽量不要使用。
)2)在获取元数据的REMARK (注释)之前,必须将连接字符串设置为包含useInformationSchema=true。