java.sql.SQLException: No value specified for parameter 5

public int update(NodeMess nodeMess) {
        Connection conn = db.openConnection();
        String sql = "update sensor_node2 set sensor_id = ?,sensor_addr = ? , sensor_port = ? ," +
                "sensor_status = ?  where sensor_id = ?";
        int count = db.update(conn,sql,nodeMess.getSensor_id(),nodeMess.getSensor_addr(),nodeMess.getSensor_port(),
                nodeMess.getSensor_status());
        db.closeConnection(conn);
        return count;
    }

1.注意看sql语句占位符跟传入的参数个数是否一致
如上所示占位符“?”有5个,但是传入的参数粗心只写了4个
2.注意主键不能修改,即这里的sensor_id
java.sql.SQLException: No value specified for parameter 5_第1张图片
改正后:

public int update(NodeMess nodeMess) {
        Connection conn = db.openConnection();
        String sql = "update sensor_node2 set sensor_addr = ? , sensor_port = ? ," +
                "sensor_status = ?  where sensor_id = ?";
        int count = db.update(conn,sql,nodeMess.getSensor_addr(),nodeMess.getSensor_port(),
                nodeMess.getSensor_status(),nodeMess.getSensor_id());
        db.closeConnection(conn);
        return count;
    }

就ok了。

你可能感兴趣的:(sql,java,数据库)