//获取页面修改之前的信息(部分代码)
//获取页面修改之前的信息(部分代码) 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)
最佳回答
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());
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
