java jdbc 在插入表之前检查值是否存在

标签 java jdbc

我正在处理一个 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/

相关文章:

java - HibernateexecuteUpdate成功但列表操作未反射(reflect)更改

java - 如何解决 java.sql.SQLException : Column count doesn't match value count at row 1 why?

java - MySQL Connector/J 中的 ClassNotFoundException

java - 重新附加实体以延迟加载集合(JPA/Hibernate)

java - JComboBox 鼠标单击单元格

java - 在 JSONObject 中存储数据库结果时出现问题

java - 为什么我们在这里特别说 ArrayList 不是线程安全的?

java - 使用 for 循环解析 XML 文件

java - 如何在 MySQL 的 SQL 查询中将 ArrayList<> 作为 IN 子句传递

java - 无法将 Java ap 连接到在线 MySQL 数据库 - 错误的 URL