您的位置:首页 > 编程语言 > Java开发

java 获取数据库所有表结构

2016-07-11 16:04 507 查看
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class Test {
private Connection connection;
private Statement statement;
public static void main(String[] args) throws Exception{
Test test=new Test();
test.initConnection("com.microsoft.sqlserver.jdbc.SQLServerDriver",
"jdbc:sqlserver://192.168.0.1:1433;databaseName=database"
,"sa"
,"root");
StringBuffer sb = new StringBuffer();
ResultSet resultSet=test.getMetaDataTables();
List<String> list=new ArrayList<>();
while(resultSet.next()){
list.add(resultSet.getString("name"));
}
for(int i=0;i<list.size();i++){
System.out.println("\n"+"table:"+list.get(0)+"\n");
test.displayMetaData(test.getMetaDataFromTable("sys_user"));
}

}
public void initConnection(String driverClass, String dbUrl, String username, String password) throws Exception {
Class.forName(driverClass);
this.connection = DriverManager.getConnection(dbUrl, username, password);
this.statement = this.connection.createStatement();
}

public ResultSet getMetaDataTables() throws Exception {
String sql = "select name from sysobjects where xtype='U' ";
ResultSet rs = this.statement.executeQuery(sql);
return rs;
}

public ResultSetMetaData getMetaDataFromTable(String tableName) throws Exception {
String sql = "SELECT * FROM " + tableName.toUpperCase() + " WHERE 1 != 1";
ResultSet rs = this.statement.executeQuery(sql);
return rs.getMetaData();
}

public void displayMetaData(ResultSetMetaData metaData) throws Exception {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < metaData.getColumnCount(); i++) {
sb.append("\n");
sb.append(metaData.getTableName(i + 1));
sb.append(".");
sb.append(metaData.getColumnName(i + 1));
sb.append("|");
sb.append(metaData.getColumnType(i + 1));
sb.append("|");
sb.append(metaData.getColumnTypeName(i + 1));
sb.append("|");
sb.append(metaData.getColumnDisplaySize(i + 1));
sb.append("|");
}
System.out.println(sb.toString());
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息