大家好,又见面了,我是你们的朋友全栈君。
package javaxxx;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Properties;
/**
* 通过DatabaseMetaData分析当前Connnection连接的数据库信息
* @author 97699
*
*/
public class DatabaseMetaDataTest{
private String driver;
private String url;
private String user;
private String pass;
Connection conn;
ResultSet rs;
public void initParm(String paramFile) throws FileNotFoundException, IOException {
InputStream in=DatabaseMetaDataTest.class.getClassLoader().getResourceAsStream(paramFile);
Properties props=new Properties();
props.load(in);
driver=props.getProperty(“driver”);
url=props.getProperty(“url”);
user=props.getProperty(“user”);
pass=props.getProperty(“pass”);
}
public void info() throws Exception {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, user, pass);
DatabaseMetaData dbmd=conn.getMetaData();
ResultSet rs=dbmd.getTableTypes();//获取MySQL支持所有表类型
System.out.println(“======MySQL支持的表类型信息======”);
printResultSet(rs);
//获取当前数据库的所有数据表
rs=dbmd.getTables(null, null, “%”, new String[]{“TABLE”});
System.out.println(“========当前数据库的数据表信息=========”);
printResultSet(rs);
//获取book表的主键
rs=dbmd.getPrimaryKeys(null, null, “book”);
System.out.println(“========book表主键信息=========”);
printResultSet(rs);
//获取当前数据库全部存储过程
rs=dbmd.getProcedures(null, null, “%”);
System.out.println(“========获取当前数据库全部存储过程=========”);
printResultSet(rs);
//获取book表与category表之间的外键约束
rs=dbmd.getCrossReference(null, null, “book”, null, null, “category”);
System.out.println(“========获取book表与category表之间的外键约束=========”);
printResultSet(rs);
//获取book表的所有数据列
rs=dbmd.getColumns(null, null, “book”, “%”);
System.out.println(“========获取book表的所有数据列=========”);
printResultSet(rs);
}
finally {
if(rs!=null) {
rs.close();
}if(conn!=null) {
conn.close();
}
}
}
public void printResultSet(ResultSet rs) throws SQLException {
// TODO Auto-generated method stub
ResultSetMetaData rsmd=rs.getMetaData();
for(int i=0;i<rsmd.getColumnCount();i++) {
System.out.print(rsmd.getColumnName(i+1)+”\t”);
}
System.out.println();
while(rs.next()) {
for(int i=0;i<rsmd.getColumnCount();i++) {
System.out.print(rs.getString(i+1)+”\t”);
}System.out.println();
}rs.close();
}
public static void main(String[] args) throws Exception {
DatabaseMetaDataTest dt=new DatabaseMetaDataTest();
dt.initParm(“db.properties”);
dt.info();
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150994.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...