JDK1.8下用JDBC连接Mysql5.5用DatabaseMetaData获得数据库相关信息

今天,在写根据数据库的表结构生成java相应的类结构时发现了一些问题,记录一下
用java.sql包下面的DatabaseMetaData类获得对应的数据库信息
获取DatabaseMetaData的实例

Connection conn=DriverManager.getConnection();
DatabaseMetaData db= conn.getMetaData();//获取实例
1.获得数据库中的表信息 用 db.getTables(String catalog,String schema,String tableName,String[] types);具体的参数意义可以查看相关的API,这里只是简单说明
catalog:表示要获得的表所在的目录,可以写成null(表示所有目录),“%”(表示没有任何目录)或者       conn.getCatalog();建议写成conn.getCatalog()获得当前目录,因为经过测试,下面在获取主键的时候写成null出错了…
schema:获得表所在的模式
tableName:要获得的标的名称
types:返回哪一种表的数组
ResultSet tableSet=dbmd.getTables(conn.getCatalog(), "%", "%", new String[]{"TABLE"});
2.获得表中的列 db.getColumns(String catalog,String schema,String tableName,String columnsPattern);参数信息参考上面
ResultSet set=dbmd.getColumns(null, null, tableName, null);

3.获得表中的主键用db.getPrimaryKeys(String catalog,String schema,String tableName);注意这里一定要指明catalog,写成其他会报错

ResultSet set2=dbmd.getPrimaryKeys(conn.getCatalog(),"%",tableName);
上面可以看出,三个都可以返回结果集,可以遍历结果集获得信息while(set.next()){},
好啦,就这些,关于DatabaseMetaDdata只是做简单的说明,并没有深入。


猜你喜欢

转载自blog.csdn.net/qq_38217873/article/details/80375470