ステートメントが自分のコードで実行できるかどうかを確認するにはどうすればよいですか? txtFirstName.getText()が空の場合、2番目のパラメータは設定されません。SQL文を実行する準備ができているかどうかをチェックする方法は?
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();
if文をSQL文の前に設定します。それが空であれば実行しないように変更してください。また、自動インクリメント列の使用をチェックアウトする必要があります。 database.users.size()+ 1は時間の経過と共に重複を引き起こします。 – Johan
例外ハンドラを使用する – Vinod
データベースに対して適切な(チェック)制約を作成し、データベースサーバが通知するエラーを処理します –