`
longfor5
  • 浏览: 51122 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DatabaseMetaData的用法(转)

    博客分类:
  • JDBC
 
阅读更多

一 . 得到这个对象的实例
Connection con ;
con = DriverManager.getConnection(url,userName,password);
DatabaseMetaData dbmd = con.getMetaData();

二. 方法getTables的用法
原型:
ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type)
此方法可返回结果集合ResultSet ,结果集中有5列, 超出会报越界异常

功能描述:得到指定参数的表信息

参数说明:
参数:catalog:目录名称,一般都为空.
参数:schema:数据库名,对于oracle来说就用户名
参数:tablename:表名称
参数:type :表的类型(TABLE | VIEW)

注意:在使用过程中,参数名称必须使用大写的。否则得到什么东西。

三. 方法getColumns的用法

功能描述:得到指定表的列信息。

原型:
ResultSet DatabaseMetaData getColumns(String catalog,String schema,String tableName,String columnName)

参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
参数columnName : 列名称

四、方法getPrimaryKeys的用法

功能描述:得到指定表的主键信息。

原型:
ResultSet DatabaseMetaData getPrimaryKeys(String catalog,String schema,String tableName)

参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称

备注:一定要指定表名称,否则返回值将是什么都没有。

五、方法.getTypeInfo()的用法

功能描述:得到当前数据库的数据类型信息。

六、方法getExportedKeys的用法

功能描述:得到指定表的外键信息。

参数描述:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称

DatabaseMetaData对象提供的是关于数据库的各种信息,这些信息包括:

1、数据库与用户,数据库标识符以及函数与存储过程。
2、数据库限制。
3、数据库支持不支持的功能。
4、架构、编目、表、列和视图等。

通过调用DatabaseMetaData的各种方法,程序可以动态的了解一个数据库。由于这个类中的方法非常的多那么就介绍几个常用的方法来给大家参考。

DatabaseMetaData实例的获取方法是,通过连接来获得的
Connection conn = //创建的连接。
DatabaseMetaData dbmd = Conn.getMetaData();

创建了这个实例,就可以使用他的方法来获取数据库得信息。首先是数据库中用户标识符的信息的获得,主要使用如下的方法:

getDatabaseProductName()用以获得当前数据库是什么数据库。比如oracle,access等。返回的是字符串。
getDatabaseProductVersion()获得数据库的版本。返回的字符串。
getDriverVersion()获得驱动程序的版本。返回字符串。
supportsResultSetType(ResultSet.resultype) 是判定是否支持这种结果集的类型。比如参数如果是Result.TYPE_FORWARD_ONLY,那就是判定是否支持,只能先前移动结果集的指针。返 回值为boolean,true表示支持。

上面介绍的只是几个常用的方法,这个类中还有很多方法,可以到jdk的帮助文档中去查看类java.sql.DatabaseMetaData。

这个类中还有一个比较常用的方法就是获得表的信息。使用的方法是:
getTables(String catalog,String schema,String tableName,String[] types),

这个方法带有四个参数,他们表示的含义如下:
String catalog——要获得表所在的编目。串“”””意味着没有任何编目,Null表示所有编目。
String schema——要获得表所在的模式。串“”””意味着没有任何模式,Null表示所有模式。该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
String tableName——指出要返回表名与该参数匹配的那些表,该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
String types——一个指出返回何种表的数组。可能的数组项是:”TABLE”,”VIEW”,”SYSTEM TABLE”,”GLOBAL TEMPORARY”,”LOCAL TEMPORARY”,”ALIAS”,“SYSNONYM”。

通 过getTables()方法返回一个表的信息的结果集。这个结果集包括字段有:TABLE_CAT表所在的编目。TABLE_SCHEM表所在的模 式,TABLE_NAME表的名称。TABLE_TYPE标的类型。REMARKS一段解释性的备注。通过这些字段可以完成表的信息的获取。

还 有两个方法一个是获得列getColumns(String catalog,String schama,String tablename,String columnPattern)一个是获得关键字的方法getPrimaryKeys(String?catalog, String?schema, String?table)这两个方法中的参数的含义和上面的介绍的是相同的。凡是pattern的都是可以用通配符匹配的。getColums()返回 的是结果集,这个结果集包括了列的所有信息,类型,名称,可否为空等。getPrimaryKey()则是返回了某个表的关键字的结果集。

通过getTables(),getColumns(),getPrimaryKeys()就可以完成表的反向设计了。主要步骤如下:

1、通过getTables()获得数据库中表的信息。
2、对于每个表使用,getColumns(),getPrimaryKeys()获得相应的列名,类型,限制条件,关键字等。
3、通过1,2获得信息可以生成相应的建表的SQL语句。

通过上述三步完成反向设计表的过程。

分享到:
评论

相关推荐

    DatabaseMetaData生成数据库DLL

    通过调用`Connection`对象的`getMetaData()`方法,我们可以获取到`DatabaseMetaData`实例,从而获取到关于数据库的各种元数据,例如表、视图、列、索引等的详细信息。 2. **元数据的作用** 元数据是描述数据的数据...

    DatabaseMetaData 接口

    DatabaseMetaData 接口DatabaseMetaData 接口作为整体提供有关数据库的综合信息。 其中某些方法采用“字符串”自变量作为目录和模式名称。DB2 Everyplace 忽略这些自变量。 此处的某些方法以 ResultSet 对象的...

    java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    然后,通过调用`Connection`对象的`getMetaData()`方法,我们可以获取到`DatabaseMetaData`对象实例。 第二部分是使用`getTables()`方法。该方法的原型是`ResultSet getTables(String catalog, String schema, ...

    java判断数据库表是否存在

    2. **DatabaseMetaData接口** 3. **getTables方法** 4. **ResultSet处理** ### 实现原理与步骤 #### 1. JDBC简介 JDBC是Java中用于连接和操作关系型数据库的标准API。它提供了一套标准的方法来执行SQL语句,获取...

    java获取数据库主外键

    使用`Connection`对象的方法`getMetaData()`获取`DatabaseMetaData`对象,它是用于访问数据库元数据的对象。 ```java DatabaseMetaData dbmd = connection.getMetaData(); ``` 3. **获取表列表** 使用`...

    android资料

    大多数`DatabaseMetaData`方法会返回一个`ResultSet`对象,这个对象包含了查询结果,开发者可以通过`getString()`和`getInt()`等方法来提取数据。在调用这些方法时,可能需要传入一个`xxxPattern`参数作为过滤条件,...

    jdbc基础和参考

    jdbc: 1.数据库连接的方式: ODBC:开放式数据库连接。 C语言实现的,提供语言和(基于SQL的)数据库进行交互的“一致性”的...1.load()方法默认要加载的对象一定存在,所以很放心的使用代理对象,等到用到的时候从...

    怎样用JDBC查看数据库的详细信息

    总结来说,使用JDBC查看数据库的详细信息主要涉及加载驱动、建立连接、获取`DatabaseMetaData`对象并调用其方法,以及正确处理结果集和关闭资源。这对于任何需要与数据库交互的Java应用都是至关重要的。通过阅读博文...

    Laravel开发-metadata

    你可以使用`Cache::store('driver')`来选择不同的缓存驱动(如file、database或Redis),然后通过`Cache::put()`方法存储metadata,`Cache::get()`获取metadata,以及`Cache::forget()`删除metadata。 在Laravel中...

    Java创建和关闭数据库连接的方法附代码.rar

    Java使用JDBC创建和关闭数据库连接的方法附代码,学习和熟悉一下JDBC的用法,创建一个数据库连接,并关闭或断开这个连接,面向java初学者。Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载...

    JdbcUtil.rar_oracle_元数据

    在Oracle中,可以使用JDBC的`DatabaseMetaData`接口来获取这些信息。下面将详细介绍如何通过Java和JDBC操作Oracle元数据。 1. **连接Oracle数据库**: 首先,你需要加载Oracle的JDBC驱动,通常是`ojdbc.jar`,并...

    java对数据库操作常用对象及方法整合[归类].pdf

    Java 语言中经常使用的数据库操作对象和方法整合,主要包括 DatabaseMetaData、ResultSet、ResultSetMetaData 等对象。 DatabaseMetaData 对象 DatabaseMetaData 对象提供了关于整个数据库的信息,包括表名、表的...

    JAVA100例之实例56 数据库元数据

    DatabaseMetaData还提供了许多其他方法,例如获取数据库的创建者(`getDatabaseProductVersion()`)、支持的SQL特性(`supportsResultSetType(int type)`)等。 6. **关闭资源**: 记得在完成操作后关闭ResultSet...

    java读取metadata元信息

    在数据库操作中,JDBC(Java Database Connectivity)提供了`DatabaseMetaData`接口,允许查询数据库的元信息,如表结构、列信息、索引、视图等。通过`Connection`对象的`getMetaData()`方法可以获得这些信息。 6....

    sql-metadata:使用python-sqlparse返回的标记化查询并生成查询元数据

    用法 pip install sql_metadata >> > import sql_metadata >> > sql_metadata . get_query_tokens ( "SELECT * FROM foo" ) [ < DML> , , , <Name> ] >> > sql_metadata . get_query_columns ( "SELECT test, id ...

    metadata:oracle,mysql,sql server 元数据管理表生成

    MetaData元数据管理小工具。作用:可以自动将所有的表信息和字段信息存入元数据表中,便于统一查阅。(注释需要保证库本身已经包含了对于表和字段的注释)方式用于为数据库提供两张表。 meta_field, meta_model。表...

    JDBC-用元数据将结果集封装为List对象[归类].pdf

    `DatabaseMetaData`接口提供了很多方法来获取关于数据库的各种信息,如数据库产品名称、版本、支持的特性等。例如,你可以使用`getDatabaseProductName()`来获取数据库的名称,`getDatabaseProductVersion()`获取...

    JAVA Web程序设计-3期(KC006) 09单元案例_数据库元数据操作和分页教学案例.doc

    这个案例主要涉及了如何使用`DatabaseMetaData`类来获取数据库的详细信息。以下是对这个案例的详细解析: 首先,我们了解`DatabaseMetaData`类是Java SQL API的一部分,它提供了一系列方法来获取关于数据库的元数据...

    如何快速的为现有数据库建立数据字典?

    例如,`Connection.getMetaData()`方法返回一个`DatabaseMetaData`对象,提供了一系列的方法来获取数据库的元信息。 - **MetadataCreator.java**: 这个文件名可能表示一个Java类,该类负责从数据库获取元数据并...

    java 获取数据库的基本信息

    获取表的信息可以使用`DatabaseMetaData.getTables()`方法。它需要四个参数: Catalog(数据库名,可能为空),SchemaPattern(模式模式,可能为空),TableNamePattern(表名模式,如果要获取所有表则留空),Types...

Global site tag (gtag.js) - Google Analytics