vaadin中的数据库表更新

时间:2015-01-05 12:56:57

标签: java mysql database sql-update vaadin

我正在使用以下代码使用以下代码更新我的数据库表。建立了数据库连接,没有显示异常,但我的数据库表没有得到更新。

private void setupSaveButton(){
saveButton.addClickListener(new Button.ClickListener() {            

@Override
public void buttonClick(ClickEvent event) {

   try {                       
    String updateQuery = "UPDATE " + MySqlConnectionManager.getDatabaseTableName()
    + " SET  BUGID='" + bugIdTextField.getValue()                                   
     + "', USERID='" + userIdTextField.getValue()
    + "', SUBJECT='" + subjectTextField.getValue()                                
    + "', COMMENT='" + commentTextArea.getValue() 
    + "', STATUS='" + statusComboBox.getValue()
    + "', OWNER='" +ownerTextField.getValue()
    + "', PRIORITY='" + priorityComboBox.getValue()                                
    + "' WHERE DATE='"+dateTextField.getValue()+"'; ";


        Connection connection = MySqlConnectionManager.getInstance().getConnection();
         if(connection!=null){
        Statement stmt = connection.createStatement();
        System.out.println("Query " + updateQuery);
        stmt.executeUpdate(updateQuery);
        }              
    } catch (SQLException ex) {
        Logger.getLogger(BugDetailDisplay.class.getName()).log(Level.SEVERE, null, ex);
    }
  }

 });

1 个答案:

答案 0 :(得分:2)

我猜您使用的是DateField日期。

MySql的默认日期格式为YYYY-MM-DD,而dateTextField.getValue()将返回Date对象,toString的默认Date表示将在您的查询中连接。因此,两种格式都不同,您的查询执行成功但无法检测到dateTextField日期的行。您可以使用SimpleDateFormat格式化dateTextField.getValue()的结果以允许查询查找匹配行。


如果您使用简单的 textField ,请确保您的日期格式必须与MySql日期匹配。