2015-01-21 93 views
1

我正在使用Java,Postgres,並試圖使用select查詢從數據庫中選擇一些數據,並將結果設置在表上。但我得到一張空桌子!即使選擇的值是數據庫PostgreSQL SELECT查詢堆棧?

這裏是代碼:

JButton btnNewButton = new JButton("Rechercher"); 
     btnNewButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 

       Connection conn = conectar(); 
       String b = "Ordre"; 
       String a = (String) comboBox.getSelectedItem(); 
       System.out.println("ordre = " + a); 

       if(a == b) { 

        String sql2 = "select * from ordre where num_ordre = '" +textArea.getText()+"'"; 
        Statement stm2; 

        try { 

         stm2 = conn.createStatement(); 
         ResultSet rs1 = stm2.executeQuery(sql2); 
         while (rs1.next()) { 

          table.setModel(DbUtils.resultSetToTableModel(rs1)); 

         } 
         rs1.close(); 
         stm2.close(); 
        } 

        catch(SQLException e2) { 

         System.out.println("Error = " + e2.getMessage()); 

        } 
       } 

       else { 

        System.out.println("LA CONDITION N EST PAS SATISFAITE"); 
       } 

      } 
+1

您是否確定textArea.getText()包含您所期望的內容? num_ordre是一個varchar列嗎?另外,用'=='進行字符串比較在Java中是不可以的。改用'if(a.equals(b))'。 – adamdc78 2015-01-21 00:57:41

+0

請勿將用戶輸入的字符串連接到SQL語句中。改用'PreparedStatement'。 – 2015-01-21 07:16:07

+0

關於如果條件確定,它不會堆疊在這裏,否則它會自動移動到「其他」!即使我刪除if條件我得到一個空表,所以我認爲問題來自sql查詢,我會嘗試Preparestatement並回答你非常感謝你的幫助 – geosevda 2015-01-21 09:07:11

回答

0

你不應該使用==運營商在Java中比較String秒 - 它會檢查兩個對象都是同一參考 ,而不是他們的內容是平等的。相反,您應該使用equals(Object)方法:

if (a.equals(b)) { // Instead of using ==