当前页面: 开发资料首页 → JSP 专题 → 页面有多条记录,如何实现点击一个'保存',就能逐条存入数据库?
页面有多条记录,如何实现点击一个'保存',就能逐条存入数据库?
摘要: 页面有多条记录,如何实现点击一个'保存',就能逐条存入数据库?
请教大家在做网上订购图书的问题.
我有一个图书表,表中有很多的图书信息,我用下面的程序将图书表中的信息逐条显示在页面上.
当客户选中某行前面的 checkbox 之后,表示当前记录被选中...
当客户选中一些 checkbox 之后,点击下面的 放入购物车 就能实现将其选中了的 checkbox 的哪条记录逐行保存到数据库呢???
我的思路是想用 for 循环 逐行保存每条记录,可是不太熟悉 for 循环怎么写?
大家有什么好的思路吗?
谢谢!!!
<table>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tushu";
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "select * from tblZk";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
%>
<tr>
<td><input type="checkbox" value="<%=rs.getString("id")%>" onclick="myClick();"></td>
<td><input type="text" name="fs" value="份数" size="3" maxlength="3" disabled />
<td><input type="text" name="id" value="<%=rs.getString("id")%>"></td>
<td><input type="text" name="mc" value="<%=rs.getString("mc")%>"></td>
<td><input type="text" name="dh" value="<%=rs.getString("dh")%>"></td>
<td><input type="text" name="dj" value="<%=rs.getString("dj")%>"></td>
<td><input type="text" name="cbss" value="<%=rs.getString("cbss")%>"></td>
<td><input type="text" name="nrjj" value="<%=rs.getString("nrjj")%>"></td>
</tr>
</table>
<input class="colorButton" type="submit" name="cartButton" value="放入购物车">
<%
}
rs.close();
stmt.close();
conn.close();
%>
接分了
String [] ids = request.getParameterValues("id");
String [] mcs= request.getParameterValues("mc");
String [] dhs= request.getParameterValues("dh");
.....
if(ids==null)
throw new Exception("没有传入任何需要修改的记录");
for(int i=0; i
service.update(ids[i], mcs[i], dhs[i]); //逐条个修改
}
逐条提交效率是不是太低了点,建议采用批量更新,executeBatch
是这样的吗:
order.jsp
<form action="orderResult.jsp" method="post" name="orderForm">
<table>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tushu";
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "select * from tblZk";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
%>
<tr>
<td><input type="checkbox" value="<%=rs.getString("id")%>" onclick="myClick();"></td>
<td><input type="text" name="fs" value="份数" size="3" maxlength="3" disabled />
<td><input type="text" name="id" value="<%=rs.getString("id")%>"></td>
<td><input type="text" name="mc" value="<%=rs.getString("mc")%>"></td>
<td><input type="text" name="dh" value="<%=rs.getString("dh")%>"></td>
<td><input type="text" name="dj" value="<%=rs.getString("dj")%>"></td>
<td><input type="text" name="cbss" value="<%=rs.getString("cbss")%>"></td>
<td><input type="text" name="nrjj" value="<%=rs.getString("nrjj")%>"></td>
</tr>
</table>
<input class="colorButton" type="submit" name="cartButton" value="放入购物车">
</form>
<%
}
rs.close();
stmt.close();
conn.close();
%>
orderSaveResult.jsp:
<%
String [] ids = request.getParameterValues("id");
String [] mcs= request.getParameterValues("mc");
String [] dhs= request.getParameterValues("dh");
...
if(ids==null)
throw new Exception("没有传入任何需要修改的记录");
for(int i=0; i
service.update(ids[i], mcs[i], dhs[i]); //逐条个修改
}
... (此处不太明白!)
%>
orderSaveResult.jsp:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="web.*" %>
-- 保存的 javaBean
<%
addOrder.addOrder(addBean);
%>
批量更新,executeBatch ???
能给个例子吗?
已经给你发过消息了,挺简单的东西,自己看看api
有关于 executeBatch 的例子吗?