String textbox1=request.getParameter("textbox1");
String textbox2=request.getParameter("textbox2");
String textbox3=request.getParameter("textbox3");
String textbox4=request.getParameter("textbox4");
String textbox5=request.getParameter("textbox5");
String textbox6=request.getParameter("textbox6");
String textbox7=request.getParameter("textbox7");
String textbox8=request.getParameter("textbox8");
String textbox9=request.getParameter("textbox9");
String textbox10=request.getParameter("textbox10");
String textbox11=request.getParameter("textbox11");
String textbox12=request.getParameter("textbox12");
for(int i=1;i<13;i++){
String textbox=request.getParameter("textbox"+i+"");
st.executeUpdate("update user_start2 set data='"+textbox+"'");
}
我有一个包含列数据,名称和ID的表。 我想用上面的查询更新表,但表中只填充了最后一个值。 我正在更新时是否可以自动接受?以便第一个数据转到第一个用户,第二个数据转到第二个用户,依此类推。
当我system out
时,我能够从jsp检索值到我的servlet
答案 0 :(得分:3)
我不知道你是如何/在哪里使用它,但请记住,它完全容易受到SQL注入攻击。
String textbox1=request.getParameter("textbox1");
String textbox2=request.getParameter("textbox2");
String textbox3=request.getParameter("textbox3");
String textbox4=request.getParameter("textbox4");
String textbox5=request.getParameter("textbox5");
String textbox6=request.getParameter("textbox6");
String textbox7=request.getParameter("textbox7");
String textbox8=request.getParameter("textbox8");
String textbox9=request.getParameter("textbox9");
String textbox10=request.getParameter("textbox10");
String textbox11=request.getParameter("textbox11");
String textbox12=request.getParameter("textbox12");
for(int i=1;i<13;i++){
String textbox=request.getParameter("textbox"+i+"");
st.executeUpdate("update user_start2 set data='"+textbox+"' where id="+i+";");
}
答案 1 :(得分:1)
我假设id是表user_start2中的唯一标识符。如果是这样,那么你需要更改上面的更新语句,以便它读取, “更新user_start2 set data ='”+ textbox +“'where id ='”+ Myuserid);
根据您的说法,我假设您的数据库中有13个条目,并且您正在更新每个条目。如果是这样,你的for循环中的id和索引之间必定有一些对应关系。如果它是文字1对1映射,那么您只需将更新语句写为
即可"update user_start2 set data= '"+textbox+"' where id = '"+i+"'");
如果首先需要进行某些转换,您可以创建一个临时变量并将id设置为:
例如 int temp = i + 4;
"update user_start2 set data= '"+textbox+"' where id = '"+temp+"'");
答案 2 :(得分:0)
使用PreparedStatement prevents SQL Injection in Java
for(int i=1;i<13;i++){
String textbox=request.getParameter("textbox"+i+"");
PreparedStatement ps = con.prepareStatement("update user_start2 set data=? where id=?");
//set the values of ?(place holders)
ps.setString(1,textbox);
ps.setInt(2,i); //assuming id is i.
ps.executeUpdate();
}