首页 > 编程知识 正文

oracle user_tables,为什么要使用元数据

时间:2023-05-04 03:12:56 阅读:61893 作者:166

http://www.Sina.com/http://www.Sina.com /

* * connection.get元数据(

数据库元数据对象*

- getURL (:返回表示数据库URL的String类对象

- getDatabaseProductName (:返回数据库的产品名称。

- getDatabaseProductVersion (:返回数据库的版本号。

- getDriverName (:返回驱动程序的名称。

- getDriverVersion (:返回驱动程序的版本号。

- isReadOnly (:返回一个布尔值,指示数据库是否只允许读取操作。

简要概述:

DatabaseMetaData接口包含许多方法,而不是本教程所涵盖的。 你应该看的JavaDoc。 这篇课文只是封面不够,给人一种感觉。 你可以用那个。

元数据:数据库、表、列的定义信息。

从Connection中以这种方式获得的DatabaseMetaData对象:

databasemetadatadatabasemetadata=connection.get metadata (获得此DatabaseMetaData实例后,可以调用方法获取有关数据库的元数据

通过java.sql.DatabaseMetaData接口,您可以获得有关您已连接到的数据库的元数据。例如,你可以看到哪些表的数据库,和什么中定义的列的每个表的数量,是否是给定功能支持等。

可以获取数据库产品名称和版本,如下所示

int major version=database metadata.getdatabasemajorversion (; int minor version=database metadata.getdatabaseminorversion (; string product name=database metadata.getdatabaseproductname (; stringproductversion=database metadata.getdatabaseproductversion (; 如果您知道哪个数据库运行APP应用程序,则可能不需要这样做。 但是,如果正在开发产品并且需要对许多不同的数据库产品运行,则此信息可以很容易地确定支持哪些特定的数据库功能、支持SQL等等。

获得一个 DatabaseMetaData 实例

可以获得此类JDBC驱动程序的驱动程序版本

intdrivermajorversion=database元数据. getdrivermajorversion (; intdriverminorversion=database元数据. getdriverminorversion (; 另外,如果对非常具体的数据库执行APP应用程序,这可能真的不准确。 但是,在APP应用程序中,必须能够运行许多不同的数据库产品和版本,使用驱动程序的准确版本可能会有好处。 例如,某些驱动程序版本可能包含错误,APP应用程序需要灵活性。 或者,驱动程序可能会失去功能。 之后,APP应用程序需要融通。

数据库产品名称和版本

可以从数据库中的数据库元数据中检索的预定义表的列表。 在这里怎么实现那个?

字符串目录=null; string方案pattern=null; 字符串表名称模式=null; String[] types=null; resultset result=database metadata.get tables (catalog,schemaPattern,tableNamePattern,types ); while(result.next () (string tablename=result.getstring ) ) 3; }首先,调用getTables ()方法,传递给它的所有四个参数字段都为空。 参数有助于限制ResultSet返回的表的数量。 但是,由于我想返回的所有表,我将空值传递给所有这些参数。 查看更具体的细节,关于参数的JavaDoc。

getTables ) )方法返回的ResultSet包含一个表名列表,所有这些表都与null四个参数匹配。 此ResultSet包含10个列,每个列都包含特定表格的信息。 带索引的3列包含表名本身。 中的JavaDoc其馀列的详细信息。

数据库驱动程序版本

也可以获取数据库元

Data表的列。这里是如何 ︰

String catalog = null;String schemaPattern = null;String tableNamePattern = "my_table";String columnNamePattern = null;ResultSet result = databaseMetaData.getColumns( catalog, schemaPattern, tableNamePattern, columnNamePattern);while(result.next()){ String columnName = result.getString(4); int columnType = result.getInt(5);}

首先你调用getColumns()方法,传递 4 个参数。其中,仅tableNamePattern设置为一个非 null 值。将其设置为您想要获取的列的表的名称。

getColumns()方法返回的ResultSet包含给定表的列的列表。带有索引 4 列包含的列的名称,并带有索引 5 列包含的列类型。列类型是整数匹配在java.sql.Types中找到的类型常量之一

要获取有关获取表的列信息的更多详细信息,请查阅 JavaDoc。

表的主键
它也是可能获得一个表的主键。你这样做,像这样 ︰

String catalog = null;String schema = null;String tableName = "my_table";ResultSet result = databaseMetaData.getPrimaryKeys( catalog, schema, tableName);while(result.next()){ String columnName = result.getString(4);}

第一次调用getPrimaryKeys()方法,将三个参数传递给它。只有tableName为非空在这个例子中。

getPrimaryKeys()方法返回的ResultSet包含组成给定表的主键的列的列表。带有索引 4 列包含列名称。

主键可能由多个列组成。这种被称为复合键。如果您的表包含复合键,ResultSet将包含多个行。复合键中每一列的一行。

支持的功能
DatabaseMetaData对象还包含有关功能的信息,JDBC 驱动程序和数据库支持。其中的许多功能被代表的方法,可以调用,这将返回 true 或 false 根据给定的特征是否受支持。

将不会覆盖所有的功能支持相关的方法在这里。我只是会给你几个例子。功能支持方法和它们的含义的完整列表,请咨询 JavaDoc。

databaseMetaData.supportsGetGeneratedKeys();databaseMetaData.supportsGroupBy();databaseMetaData.supportsOuterJoins();

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。