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只是做简单的说明,并没有深入。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值