2012-02-12 59 views
1

我用Java創建了一個數據庫的連接,我想顯示兩個表中的數據。在java中顯示兩個表的值

在查詢語句中,我使用了JOIN命令,但是我正在努力解決語法錯誤。 希望得到一些建議。

try 
    { 
     Class.forName(driverName); 
     connection = DriverManager.getConnection(SourceURL, user, password); 


     Statement listDisplay = connection.createStatement(); 
     ResultSet displayAll = listDisplay.executeQuery("SELECT AnimalType.typeID, AnimalType.description, Animal.name " 
                +"FROM Animal " 
                +"JOIN AnimalType "  
                +"ON AnimalType.typeID = Animal.typeIDForeign"); 
     while(displayAll.next()) 
     { 
      int typeId = displayAll.getInt(1); 
      String description = displayAll.getString(2); 
      String name = displayAll.getString(3); 

      System.out.println(typeId + " " + description + " " + name); 
     } 

     connection.close(); 

     } 
     catch(SQLException sql) 
     { 
      JOptionPane.showMessageDialog(null, sql.toString()); 
     } 
     catch(ClassNotFoundException exe) 
     { 
      JOptionPane.showMessageDialog(null, exe.toString()); 
     } 

它會工作,我想在這裏做什麼?

問候 阿里安

+2

請張貼堆棧跟蹤。 – Paul 2012-02-12 14:53:58

+0

由於您可以在命令行應用程序中重現相同的錯誤。沒有GUI,這與Swing沒有任何關係。 – 2012-02-12 15:02:57

+0

是的。謝謝。對查詢做了輕微的修改,現在很好......謝謝。 (「SELECT AnimalType.typeID,AnimalType.description,Animal.name」+「FROM AnimalType,Animal」+「WHERE AnimalType.typeID = Animal.typeIDForeign」); – Arianule 2012-02-12 15:10:42

回答

1

我通常做它有點像這樣:

if (displayAll.first()) 
{ 
    do 
    { 
     int typeId = displayAll.getInt(1); 
     String description = displayAll.getString(2); 
     String name = displayAll.getString(3); 

     System.out.println(typeId + " " + description + " " + name); 
    } while(displayAll.next()); 
} 
displayAll.close(); 
listDisplay.close();