一 . 得到这个对象的实例
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的用法相关推荐

  1. java metadata 使用_java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

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

  2. java getcolumns_Java DatabaseMetaData.getColumns方法代碼示例

    本文整理匯總了Java中java.sql.DatabaseMetaData.getColumns方法的典型用法代碼示例.如果您正苦於以下問題:Java DatabaseMetaData.getColu ...

  3. java getcolumns_Java DatabaseMetaData.getFunctionColumns方法代碼示例

    本文整理匯總了Java中java.sql.DatabaseMetaData.getFunctionColumns方法的典型用法代碼示例.如果您正苦於以下問題:Java DatabaseMetaData ...

  4. Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvc

    Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ...

  5. JDBC中DatabaseMetaData用法

    DatabaseMetaData类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息.就如我们上面例子中所显示的几个信息[其他的方法请读者参考JDK API中的Dat ...

  6. DatabaseMetaData的简单使用

    在看大佬写的一个导出数据库建标脚本的接口的时候,发现频频用到DataBaseMetaData这个类,之前也没有 用过这个类下的API,记录一下心得用法. DatabaseMetaData是java.s ...

  7. mysql databasemetadata_DatabaseMetaData的用法(转)

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

  8. oracle中minus作的应用,Oracle minus用法详解及应用实例

    Oracle minus用法详解及应用实例 Oracle minus用法 "minus"直接翻译为中文是"减"的意思,在Oracle中也是用来做减法操作的,只不 ...

  9. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

最新文章

  1. 波场DApp数据分析
  2. 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现) .
  3. troubleshoot之:使用JFR解决内存泄露
  4. Digit-Sum(HDU - 5710)
  5. Java获取字符串信息
  6. JUC与JVM并发编程学习笔记01
  7. python中的commands模块
  8. Java实现棒子老虎鸡小游戏
  9. rocketmq模块架构图
  10. ubuntu下安装CAJ阅读器
  11. 在firefox 2.0.0.3中使用onenote 2007收集资料
  12. 一、阿里矢量图标(字体图标)
  13. matlab 读取odb,求教用C++方式读取abaqus的odb数据中的问题!!!
  14. 企业微信开发----H5发送表单请求到企业微信内部审核
  15. 【支付】网络支付-支付网关模式与虚拟账户模式
  16. 重读《从菜鸟到测试架构师》-- 从专家到高手
  17. 让研发团队找准市场需求
  18. 电商APP首页楼层架构设计详解
  19. 关于我开始使用博客的这件事
  20. Clothoid回旋曲线在APA路径优化中的工程应用实例及其C++源码分析与下载

热门文章

  1. 伊春职业学院计算机应用技术学院,计算机应用技术学院“创建无烟校园”活动方案...
  2. ArcGIS中加载无偏移谷歌卫星影像!奥维官方插件与ArcGIS协同互动
  3. c# mysql 事务_C# 使用SqlTransaction进行事务处理
  4. mysql cacherowset_Java实现分页数据获取CachedRowSet
  5. Spring 整合 Google Captcha 验证码
  6. 自媒体可以去哪里找免费图片素材?
  7. ipmitool介绍_ipmitool 常用命令 IPMI
  8. android 关闭软键盘,点击软键盘之外关闭软键盘,editText关闭键盘
  9. java开发经验分享
  10. eclipse 一直Refresh SVN status cach,一直refreshing workspace