【问题标题】:java.sql.SQLException: Parameter index out of range (5 > number of parameters, which is 4) on Netbeansjava.sql.SQLException:Netbeans 上的参数索引超出范围(5 > 参数数,即 4)
【发布时间】:2020-02-16 02:20:24
【问题描述】:

我开始学习使用 Netbeans 制作 Java GUI 应用程序。我正在关注 youtube 上的教程:https://www.youtube.com/watch?v=j0aEUB2Efuk。但是我在使用 mysql 时遇到了一个错误,我和视频中的那个人做了同样的事情,但没有工作。代码如下:

public boolean editClient(int id, String fname, String lname, String phone, String email) {
        PreparedStatement st;
        String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name = ?`, `phone` = ?, `email` = ? WHERE `id` = ? ";

        try {

            st = my_connection.createConnection().prepareStatement(editQuery);

            st.setInt(1, id);
            st.setString(2, fname);
            st.setString(3, lname);
            st.setString(4, phone);
            st.setString(5, email);


            return st.executeUpdate() > 0;

        } catch (SQLException ex) {
            Logger.getLogger(CLIENT.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

sql 查询似乎没问题,或者可能是 JDBC 驱动程序的错误。

【问题讨论】:

    标签: java mysql sql sqlexception


    【解决方案1】:

    您在 last_name=?' 之后添加了一个引号,因此将其视为文字。

    把它放在last_name之后和=之前

    它应该看起来像这样,

    String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name` = ?, `phone` = ?, `email` = ? WHERE `id` = ? "; 
    

    如果有帮助,请点赞。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 2020-02-21
      • 1970-01-01
      • 2021-07-07
      • 2013-07-22
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多