pre.setInt(5,userDTO.getId());
這里面的第一個(gè)參數(shù)對(duì)應(yīng)你上面sql語句里面的第幾個(gè)問號(hào),
(5 > number of parameters)你一共只有3個(gè)問號(hào),所以只能這個(gè)數(shù)字最大只能是3.5超出最大范圍了
所以你可以改成:
pre.setInt(3,userDTO.getId());
或者直接用字段名:
pre.setInt("id",userDTO.getId());
//獲取頁面修改之前的信息(部分代碼)
//獲取頁面修改之前的信息(部分代碼)
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;
}
上面多一個(gè)逗號(hào),我已經(jīng)刪掉,那里不是主要原因,
Parameter index out of range (5 > number of parameters, which is 3)
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;
}
上面多一個(gè)逗號(hào),我已經(jīng)刪掉,那里不是主要原因,
Parameter index out of range (5 > number of parameters, which is 3)
其他人氣:395 ℃時(shí)間:2020-05-08 02:18:06
優(yōu)質(zhì)解答
我來回答
類似推薦
- java.sql.SQLException:Parameter index out of range (1 > number of parameters,which is 0).
- Parameter index out of range (4 > number of parameters,which is 3).
- Parameter index out of range (1 > number of parameters, which is 0).
- block number is out of
- C#IndexOutOfRangeException:Array index is out of range怎么解決
- 美利堅(jiān)合眾國(guó)各州The States of the United States of America
- what do you like to do英語作文,越多越好
- 意思是形容失意時(shí)情緒低落,提不起精神的樣子的四字詞語
- A,B,C為中學(xué)化學(xué)常見化合物,甲,乙,丙為單質(zhì)
- 一件成品為200元的商品標(biāo)出的價(jià)格為400元,現(xiàn)打7.5折出售此商品,則可獲得利潤(rùn) 元,其利潤(rùn)為
- 正方形的邊長(zhǎng)為4厘米,剪去四個(gè)角后成為一個(gè)正八邊形.求這個(gè)正八邊形的邊長(zhǎng)和面積
- 先判斷x與y成什么比例,再填表
猜你喜歡
- 1island怎么讀
- 2whereis she?怎么轉(zhuǎn)換為do you know where she is
- 3求軍訓(xùn)1000字的心得體會(huì)!
- 4帶橋字的成語 越多越好
- 5and only want to sleep with you and have babies with you..maybe i am nota good englsh teacher
- 6請(qǐng)問,正電荷可不可以移動(dòng)?還有,神經(jīng)纖維和神經(jīng)元有關(guān)系嗎?
- 7The studengts have a long holiday in some parts of the US.The school year begins in late August or early Septembeer,and
- 8西電東送工程中,中線和南線的電力主要來自于對(duì)河流中上游的梯級(jí)開發(fā),流域梯級(jí)開發(fā)除發(fā)電外,對(duì)區(qū)域經(jīng)濟(jì)發(fā)展帶來的有利影響有什么(4個(gè))
- 9,甲乙兩筐蘋果共112個(gè),如果從甲筐中拿出蘋果給乙筐,再?gòu)囊铱蛑心贸鑫宸种环湃爰卓?結(jié)果兩筐蘋果就一樣
- 10英語翻譯
- 11that was a statement
- 12生物圈和生態(tài)系統(tǒng)的概念