用列名打印出整个表

时间:2018-08-17 06:57:44

标签: java sql jdbc

我目前正在学习SQL,并且正在使用MS SQL Server2017。

除了列名之外,我能够打印出包含所有数据的特定表,我真的不知道如何检索它们。

这是我的代码的一部分(我删除了代码示例的try catch)

Connection conn = null;
ResultSet rs = null;
String query = "SELECT * FROM Example";
ResultSetMetaData rsmd = null;

Class.forName(driver);
conn = DriverManager.getConnection(connectionUrl, userName, password);
Statement mS = conn.createStatement();
System.out.println("Verbindung wurde hergestellt");
rs = mS.executeQuery(query);
rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
    for(int i = 1; i <= columnsNumber; i++) {
        System.out.print(rs.getString(i)+ " ");
    }
    System.out.println();
}

编辑: 我希望只将它们打印一次,以便有某种“标题”

1 个答案:

答案 0 :(得分:2)

您应该从循环开始为每个列索引打印rsmd.getColumnLabel(int column)

// header
    for(int i = 1; i <= columnsNumber; i++) {
        System.out.print(rsmd.getColumnLabel(i)+ " ");
    }
    System.out.println();

// data
    while(rs.next()) {
        for(int i = 1; i <= columnsNumber; i++) {
            System.out.print(rs.getString(i)+ " ");
        }
        System.out.println();
    }