2011-12-07 65 views
3

我有一個帶有表歌詞1的數據庫歌詞,並且下面的代碼中我想插入一行到歌詞1中。無法將行插入到MySQL數據庫中

但是當我回到mysql客戶端並做describe lyrics1時,它沒有更新。

我得到沒有錯誤,它連接到數據庫罰款。至少我沒有得到錯誤,說它無法。

connectToDB(); 

ok.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     try { 

      String query = "INSERT INTO lyrics1(name, artist) values(?, ?)"; 
      PreparedStatement statement = connection.prepareStatement(query); 
      statement.setString(1, nameOfSong.getText()); // set input parameter 2 
      statement.setString(2, artist.getText()); 
      ResultSet rs = statement.executeQuery("SELECT * FROM lyrics1"); 
      while (rs.next()){ 
       System.out.println(rs.getString(1)); 
      } 
      rs.close(); 
      statement.close(); 
      connection.close(); 

     } catch (SQLException insertException) { 
      displaySQLError(insertException); 
     } 
     internalFrame.dispose(); 
    } 
}); 

回答

4

您從未實際執行INSERT語句,您只需創建它並從不實際執行它。您正在執行SELECT,但實際上並沒有將INSERT語句發送到服務器。

您需要先調用statement.executeUpdate()它會返回受影響的行數,大多數時候您要檢查INSERT時是否等於1,而UPDATE和DELETE時是多於ZERO。

+0

我執行它我只是沒有顯示代碼的其餘部分,本質上我稱爲此代碼的方法.. –

+0

您發佈的代碼是根本上有缺陷,您需要發佈整個事情或至少是這是正確的,這在任何合理的方式都是不正確的。 –

+0

哇,你是對的,謝謝你 –

相關問題