//获取页面修改之前的信息(部分代码)

学习 时间:2026-04-01 06:54:56 阅读:2582
//获取页面修改之前的信息(部分代码) String sid = req.getParameter("id"); int id = Integer.parseInt(sid); String name = req.getParameter("name"); String pass = req.getParameter("pass"); System.out.println(name+"-----------"+pass); UserDTO userDTO = new UserDTO(); userDTO.setName(name); userDTO.setPassword(pass); //sql String sql = "update p_user set name = ?,password = ?, where id = ?"; Dao dao = new Dao(); int count = dao.getUpdate(sql, userDTO); String url = ""; if(count > 0){ url = "userList.jsp"; }else{ url = "error.jsp"; req.setAttribute("error", "更新"); } req.getRequestDispatcher(url).forward(req, resp); dao层public int getUpdate(String sql,UserDTO userDTO){ int count = 0; try { pre = connection.prepareStatement(sql); pre.setInt(5,userDTO.getId()); pre.setString(1, userDTO.getName()); pre.setString(2, userDTO.getPassword()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try{ pre.close(); connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return count; }上面多一个逗号,我已经删掉,那里不是主要原因,Parameter index out of range (5 > number of parameters, which is 3)

最佳回答

追寻的水池

腼腆的书本

2026-04-01 06:54:56

pre。setInt(5,userDTO。getId());这里面的第一个参数对应你上面sql语句里面的第几个问号,(5 > number of parameters)你一共只有3个问号,所以只能这个数字最大只能是3。5超出最大范围了 所以你可以改成:pre。setInt(3,userDTO。getId());或者直接用字段名:pre。setInt("id",userDTO。getId());

最新回答共有2条回答

  • 野性的水杯
    回复
    2026-04-01 06:54:56

    pre。setInt(5,userDTO。getId());这里面的第一个参数对应你上面sql语句里面的第几个问号,(5 > number of parameters)你一共只有3个问号,所以只能这个数字最大只能是3。5超出最大范围了 所以你可以改成:pre。setInt(3,userDTO。getId());或者直接用字段名:pre。setInt("id",userDTO。getId());

上一篇 老师写了一道计算题小亮没来得及抄就被值日生擦去了一个符号剩如下的部分27-18(这个空填符号)(-7)-23

下一篇 将a克氢气点燃,与b克氯气充分反应,所得混合气体用足量的氢氧化钠溶液充分吸收,求: