java - 准备语句错误: Parameter 12 undefined

标签 java mysql prepared-statement

我有十一个字段想要插入到数据库中。显示的错误是我的 12 参数未定义,即 ps.executeUpdate()。我应该怎么办?

我的插入方法如下。

public void update(User user){
        try{
        Connection conn = DbUtils.getConnection();
        PreparedStatement ps = conn.prepareStatement("UPDATE db.db set id = ?,username = ?,password = ?,firstname = ?, lastname = ?, fathersname =?, gender = ?, email = ?,address =? , phnno = ?, courses = ?" + "WHERE id =?");
        ps.setInt(1, user.getId());
        ps.setString(2, user.getName());
        ps.setString(3, user.getPwd());
        ps.setString(4, user.getFname());
        ps.setString(5,  user.getLname());
        ps.setString(6, user.getFathername());
        ps.setString(7, user.getAddress());
        ps.setString(8, user.getEmail());
        ps.setString(9, user.getGender());
        ps.setString(10, user.getPhno());
        ps.setString(11, user.getCradio());
        ps.execute();           
        }catch(Exception e){
            e.printStackTrace();            
    }
    `

最佳答案

函数应该有另一个参数,用于 12 个占位符。 像这样:

public void update(User user){
        try{
        Connection conn = DbUtils.getConnection();
        PreparedStatement ps = conn.prepareStatement("UPDATE db.db set id = ?,username = ?,password = ?,firstname = ?, lastname = ?, fathersname =?, gender = ?, email = ?,address =? , phnno = ?, courses = ?" + " WHERE id =?");
        ps.setInt(1, user.getId());
        ps.setString(2, user.getName());
        ps.setString(3, user.getPwd());
        ps.setString(4, user.getFname());
        ps.setString(5,  user.getLname());
        ps.setString(6, user.getFathername());
        ps.setString(7, user.getAddress());
        ps.setString(8, user.getEmail());
        ps.setString(9, user.getGender());
        ps.setString(10, user.getPhno());
        ps.setString(11, user.getCradio());
        ps.setInt(12, user.getId()); //parameter 12 added
        ps.execute();           
        }catch(Exception e){
            e.printStackTrace();            
    }

您真的想也更新 ID 字段吗?

关于java - 准备语句错误: Parameter 12 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561868/

相关文章:

java - 是否有使用 Groovy 进行单元测试(以及集成或回归,如果适用)的情况?

java - System.out 声明为 static final 并用 null 初始化?

修改cico dhcp池的php脚本

ruby-on-rails - 使用 PostgreSQL 使用 ActiveRecord 准备和执行语句

java - PreparedStatement 方法中的 ArrayOutOfBoundsException

java - 未调用主方法的方法 (Java)

java - 如何绘制 Java2D 模拟的一部分而不更改为图像/缓冲区,这样我就不必每次都重新绘制它的基元?

php - Symfony 2 EntityAudit 根本不生成历史/版本表

mysql - 将 mysql tinyint 与 subsonic 3 和 datagridview 绑定(bind)时出现问题

php - mysqli准备语句错误 "MySQL server has gone away"