mysql databasemetadata_DatabaseMetaData的用法(转)

mysql databasemetadata_DatabaseMetaData的用法(转)一.得到这个对象的实例Connectioncon;con=DriverManager.getConnection(url,userName,password);DatabaseMetaDatadbmd=con.getMetaData();二.方法getTables的用法原型:ResultSetDatabaseMetaData.getTables(Stringcatalog,…

大家好,又见面了,我是你们的朋友全栈君。

一 . 得到这个对象的实例

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150947.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 硬盘恢复分区_恢复分区和efi系统分区怎么删除

    硬盘恢复分区_恢复分区和efi系统分区怎么删除Windows系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个EFI分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删…

    2022年8月11日
    40
  • oracle恢复被覆盖的存储过程

    oracle恢复被覆盖的存储过程

    2021年11月29日
    48
  • 爬取爱套图网上的图片

    爬取爱套图网上的图片#coding=utf-8frombs4importBeautifulSoupimportrequestsforiinrange(20):i=str(i)url=’https://www.aitaotu.com/weimei/16359_’+i+’.html’html=requests.g…

    2022年9月14日
    0
  • 永恒之蓝漏洞入侵_永恒之蓝漏洞探测

    永恒之蓝漏洞入侵_永恒之蓝漏洞探测一、基础知识介绍:1.何为永恒之蓝?永恒之蓝(EternalBlue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎…

    2022年10月17日
    0
  • arrays.sort排序_js数组排序方法sort

    arrays.sort排序_js数组排序方法sortArrays.sort默认是升序,如果我们需要降序排列数组?Arrays.sort(distances);——升序Arrays.sort(distances,Collections.reverseOrder());——降序再说说Collections集合类,用来排序集合的Collections.sort(list)——升序Collections.reverse(list…

    2022年8月12日
    3
  • cad制图常用命令_cad制图注意事项及细节

    cad制图常用命令_cad制图注意事项及细节AutoCAD常见命令总结1.选项:OP2.缩放:z3.鼠标操作:滚动中键缩放,按住中键移动4.选择:实线,虚线。5.直线:线性(标记),对象捕捉。6.尺寸线:几何尺寸,定位尺寸。从左,上标记。7.标注:规范标注(尺寸界限与几何线之间不能重合),快速标注(按空格),连续标注(需提前标好一个)。8.直线定位法。9.画斜线公式:@长度……

    2022年9月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号