我正在处理一个 Java 项目,但在将值插入到我的表中时遇到了瓶颈。我想在插入此表之前进行检查,看看是否有任何重复项。
之后我尝试了一个带有 executequery 结果集的 executeUpdate,但我收到“java.sql.SQLException:无法使用 executeQuery() 发出数据操作语句。”
这是我正在使用的代码,在此先感谢您!
public void registernow(ActionEvent actionEvent) throws IOException, SQLException {
ConnectionClass registerClass = new ConnectionClass();
Connection register = registerClass.getConnection();
try {
Statement registerStatement = register.createStatement();
String sql = "INSERT INTO userAuth (username, password) VALUES ('" + txt_username.getText() + "' , '" + txt_password.getText() + "')";
registerStatement.executeUpdate(sql);
ResultSet resultSet = registerStatement.executeQuery(sql);
if (resultSet.next()) {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("register.fxml"));
Parent fxmlregister = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setTitle("COMP228 Project Registration Complete!");
stage.setScene(new Scene(fxmlregister));
stage.show();
} else {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("registerfailed.fxml"));
Parent fxmlregisterfailed = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setTitle("COMP228 Project Registration Failed!");
stage.setScene(new Scene(fxmlregisterfailed));
stage.show();
}
最佳答案
正如错误和@JBNizet 已经告诉您的那样,您正在尝试执行相同的更新语句,但使用的是 ExecuteQuery
。
所以您正尝试使用 executeQuery
执行更新语句,您应该尝试使用查询执行第二个命令
sql = "SELECT COUNT(1) FROM yourTable WHERE yourCondition = true";
ResultSet resultSet = registerStatement.executeQuery(sql);
你真的应该记下@JBNizet 的评论,连接字符串以创建查询是不好的。
关于java jdbc 在插入表之前检查值是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733537/