在mysql更新查询中自动增量

问题描述 投票:0回答:3
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

java mysql sql jsp
3个回答
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
投票

我假设id是表user_start2中的唯一标识符。如果是这样,那么你需要改变上面的更新语句,使其显示“update 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+"'");

0
投票

使用PreparedStatementprevents 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();     
}

See also

© www.soinside.com 2019 - 2024. All rights reserved.