Java DatabaseMetaData用法案例详解

 更新时间:2021年08月27日 09:56:08   作者:liuleigang  
这篇文章主要介绍了Java DatabaseMetaData用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

一 . 得到这个对象的实例

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语句。

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

到此这篇关于Java DatabaseMetaData用法案例详解的文章就介绍到这了,更多相关Java DatabaseMetaData用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java基于UDP协议实现简单的聊天室程序

    Java基于UDP协议实现简单的聊天室程序

    这篇文章主要为大家详细介绍了Java基于UDP协议实现简单的聊天室程序的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 详解SpringBoot的Run方法

    详解SpringBoot的Run方法

    本文给大家介绍了SpringBoot的Run方法,文中通过实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-10-10
  • java中静态导入机制用法实例详解

    java中静态导入机制用法实例详解

    这篇文章主要介绍了java中静态导入机制用法实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java8新特性之lambda(动力节点Java学院整理)

    Java8新特性之lambda(动力节点Java学院整理)

    这篇文章主要介绍了Java8新特性之lambda(动力节点Java学院整理)表达式的相关知识,包括lambda语法方面的知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-06-06
  • 用Eclipse 创建一个简单的web项目(图文教程)

    用Eclipse 创建一个简单的web项目(图文教程)

    下面小编就为大家带来一篇用Eclipse 创建一个简单的web项目(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java实现下载文件到默认浏览器路径

    java实现下载文件到默认浏览器路径

    这篇文章主要介绍了java实现下载文件到默认浏览器路径,具有很好的参考价值,希望对的大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解Spring Bean的循环依赖解决方案

    详解Spring Bean的循环依赖解决方案

    这篇文章主要介绍了详解Spring Bean的循环依赖解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • RestTemplate的DELETE及PUT等请求方法使用精讲

    RestTemplate的DELETE及PUT等请求方法使用精讲

    这篇文章主要为大家介绍了RestTemplate的DELETE及PUT等请求方法的使用精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Spring Eureka 未授权访问漏洞修复问题小结

    Spring Eureka 未授权访问漏洞修复问题小结

    项目组使用的 Spring Boot 比较老,是 1.5.4.RELEASE ,最近被检测出 Spring Eureka 未授权访问漏洞,这篇文章主要介绍了Spring Eureka 未授权访问漏洞修复问题小结,需要的朋友可以参考下
    2024-04-04
  • Spring入门实战之Profile详解

    Spring入门实战之Profile详解

    什么是spring profile?简单讲profile就是一组配置,不同profile提供不同组合的配置,程序运行时可以选择使用哪些profile来适应环境。下面这篇文章主要介绍了Spring中Profile实战的相关资料,需要的朋友可以参考借鉴。
    2017-02-02

最新评论