一 . 获得这个对象的实例
Connection con ;
con = DriverManager.getConnection(url,userName,password);
DatabaseMetaData dbmd = con.getMetaData();java
二. 方法getTables的用法
原型:
ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type)
此方法可返回结果集合ResultSet ,结果集中有5列, 超出会报越界异常
功能描述:获得指定参数的表信息sql
参数说明:
参数:catalog:目录名称,通常都为空.
参数:schema:数据库名,对于oracle来讲就用户名
参数:tablename:表名称
参数:type :表的类型(TABLE | VIEW)数据库
注意:在使用过程当中,参数名称必须使用大写的。不然获得什么东西。数组
三. 方法getColumns的用法架构
功能描述:获得指定表的列信息。oracle
原型:
ResultSet DatabaseMetaData getColumns(String catalog,String schema,String tableName,String columnName)函数
参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
参数columnName : 列名称url
4、方法getPrimaryKeys的用法spa
功能描述:获得指定表的主键信息。设计
原型:
ResultSet DatabaseMetaData getPrimaryKeys(String catalog,String schema,String tableName)
参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
备注:必定要指定表名称,不然返回值将是什么都没有。
5、方法.getTypeInfo()的用法
功能描述:获得当前数据库的数据类型信息。
6、方法getExportedKeys的用法
功能描述:获得指定表的外键信息。
参数描述:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
DatabaseMetaData对象提供的是关于数据库的各类信息,这些信息包括:
一、数据库与用户,数据库标识符以及函数与存储过程。
二、数据库限制。
三、数据库支持不支持的功能。
四、架构、编目、表、列和视图等。
经过调用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()就能够完成表的反向设计了。主要步骤以下:
一、经过getTables()得到数据库中表的信息。
二、对于每一个表使用,getColumns(),getPrimaryKeys()得到相应的列名,类型,限制条件,关键字等。
三、经过1,2得到信息能够生成相应的建表的SQL语句。
经过上述三步完成反向设计表的过程。