如何检查语句是否可以在我的代码中执行?如果txtFirstName.getText()为空,则不会设置第二个参数。
String sql = "INSERT INTO Employees (id, firstName, lastName, adress, phone, email, photo, comments) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement statement = database.connection.prepareStatement(sql);
statement.setString(1, database.users.size() + 1 + "");
if (txtFirstName.getText().matches(""))
statement.setString(2, txtFirstName.getText());
statement.setString(3, txtLastName.getText());
statement.setString(4, txtAdress.getText());
statement.setString(5, txtPhone.getText());
statement.setString(6, txtEmail.getText());
statement.setString(7, txtPhotoURL.getText());
statement.setString(8, txtComment.getText());
statement.executeUpdate();
答案 0 :(得分:0)
如果txtFirstName.getText()为空,则不会设置第二个参数。
是的,它会;它将被设置为空字符串。这对于这个特定的查询和表结构是否有效超出了JDBC的范围。
您需要提前单独检查约束,然后再拨打电话。
答案 1 :(得分:0)
如果else
与模式不匹配,则需要txtFirstName
条件来指定要执行的操作,例如:
if (txtFirstName.getText().matches("")){
statement.setString(2, txtFirstName.getText());
}else {
throw new IllegalArgumentException("Invalid name pattern");
}
这将阻止代码执行错误preparedstatement
并抛出exception
并显示相应的错误消息。