2013-12-18 67 views
1

我有一個快速問題。我是一名初學者程序員,爲了學校,我們需要製作一個控制檯代碼,在控制檯中輸出查詢結果。我曾經嘗試過多少次,但沒有發現查詢結果,我得到的只是一些奇怪的文本。從數據庫打印信息到控制檯程序

這是我的主類,我也有被稱爲SimpleDataSourceV2(此類包含使連接到MySQL數據庫代碼中的第二類。

public static void main(String[] args) { 
    try { 
    Connection conn = SimpleDataSourceV2.getConnection(); 

     doQuery(conn); 

     conn.close(); 

    } 
    catch (Exception e){ 
     System.out.print(e); 
    } 
} 

public static void doQuery(Connection conn) { 
    try { 

     Statement stat = conn.createStatement(); 

     ResultSet result = stat.executeQuery("SELECT * FROM employee"); 

     while (result.next()) { 
      System.out.println(result); 
     } 

     result.close(); 

     stat.close(); 

    } 
    catch (SQLException e){ 
     System.out.print(e); 
    } 
} 

這是兩種方法,我用該員工表包含不同的信息,如姓名,ADRESS,城市等

這裏是我的輸出是什麼:

run: 

[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

BUILD SUCCESSFUL (total time: 1 second) 

誰能請告訴我我做錯了什麼?

預先感謝您。

回答

0

如果您直接嘗試打印ResultSet,只會得到類似的輸出。如果你知道的列數,然後寫一個循環,並打印列的值

while (result.next()) { 
    for (int columnIndex = 1; columnIndex <= numberOfColumns; columnIndex ++){ 
     System.out.println(columnIndex + "<====>" + result.getString(columnIndex)); 
    } 
} 

如果你不知道的列數,你可以得到它使用ResultSetMetaData這樣

java.sql.ResultSetMetaData rsmd = result.getMetaData(); 
int numberOfColumns = rsmd.getColumnCount();