我正在使用以下代码使用以下代码更新我的数据库表。建立了数据库连接,没有显示异常,但我的数据库表没有得到更新。
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);
}
}
});
答案 0 :(得分:2)
我猜您使用的是DateField
日期。
MySql的默认日期格式为YYYY-MM-DD
,而dateTextField.getValue()
将返回Date
对象,toString
的默认Date
表示将在您的查询中连接。因此,两种格式都不同,您的查询执行成功但无法检测到dateTextField
日期的行。您可以使用SimpleDateFormat
格式化dateTextField.getValue()
的结果以允许查询查找匹配行。
如果您使用简单的 textField
,请确保您的日期格式必须与MySql日期匹配。