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

匿名 (未验证) 提交于 2019-12-02 21:53:52

一、问题提出

我在模拟实现批处理时出现此问题代码如下: 
public static int batch(Connection connection, String sql, Object[][] params) {         try(Connection conn = connection){             PreparedStatement pstat = conn.prepareStatement(sql);             for (int i = 0; i < params.length; i++) {                 for (int j = 0; j < params[i].length; j++) {                     pstat.setObject(j + 1, params[i][j]);                     //错误                     pstat.executeUpdate();                 }                //正确                pstat.executeUpdate();             }         } catch(SQLException e) {             e.printStackTrace();         }         return 0;     }

分析,内循环负责给预编译(预备)语句赋值。如果只有一个参数,不会报错。当有两个参数时,第二个还没有来的及赋值,就执行了语句。所以会出现如题 错误
没有为第二个参数赋值

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!