java 获取数据库所有表结构

来源:互联网 发布:番号搜索观看软件 编辑:程序博客网 时间:2024/06/05 07:24

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());}


}
0 0