Java 如何检查sql语句是否已准备好执行?
如何检查语句是否可以在代码中执行?如果txtFirstName.getText()为空,则不会设置第二个参数Java 如何检查sql语句是否已准备好执行?,java,sql,jdbc,Java,Sql,Jdbc,如何检查语句是否可以在代码中执行?如果txtFirstName.getText()为空,则不会设置第二个参数 String sql = "INSERT INTO Employees (id, firstName, lastName, adress, phone, email, photo, comments) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; PreparedStatement statement = database.connectio
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();
如果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();
是的,会的;它将被设置为空字符串。这对于这个特定的查询和表结构是否有效超出了JDBC的范围
您需要提前单独检查您的约束条件,然后进行调用或不进行调用。您需要一个
else
条件来指定如果txtFirstName
与模式不匹配时该怎么办,例如:
if (txtFirstName.getText().matches("")){
statement.setString(2, txtFirstName.getText());
}else {
throw new IllegalArgumentException("Invalid name pattern");
}
这将防止代码执行错误的
preparedstatement
,并抛出带有相应错误消息的异常。在sql语句之前设置if语句。并更改它,使其在为空时不会执行。您还应该检查自动增量列的使用。database.users.size()+1将随着时间的推移导致重复。请使用异常句柄在数据库上创建适当的(检查)约束,然后处理数据库服务器发出的任何错误信号