【发布时间】:2012-08-29 03:27:44
【问题描述】:
我有一个可以编辑值的数据库表。我想更新相同的,下面是我尝试过的代码。
表格代码如下
<table border="1px">
<tr>
<td><b>DBID</b></td>
<td><b>Query Raised</b></td>
<td><b>Time Raised</b></td>
<td><b>Query Answered</b></td>
<td><b>Time Answered</b></td>
</tr>
<%
try {
ps = con.prepareStatement("Select DBID, Query_Raised, TR, Query_Answered, TA from Scope1 where TR!='null'");
rs = ps.executeQuery();
while(rs.next()) {
%>
<tr>
<td><%=rs.getString("DBID")%></td>
<td><input type="Text" value="<%=rs.getString("Query_Raised")%>" name="Updat"></td>
<td><%=rs.getString("TR")%> </td>
<td><%=rs.getString("Query_Answered")%></td>
<td><%=rs.getString("TA")%></td>
<td><input type="Submit" value="Update"></td>
</tr>
<%
} // while loop ends here
rs.close();
con.close();
} catch(Exception e) {
out.println(e);
}
%>
</table>
并且使用的更新查询是:
String a = request.getParameter("Updat");
ps = con.prepareStatement("Update Scope1 Set Query_Raised = '" + a + "'");
int i = ps.executeUpdate();
if(i == 1) {
out.print("Done");
} else{
out.print("Erro");
}
我想知道我应该使用什么条件来更新同一页面中的数据。
谢谢
【问题讨论】:
-
请不要将数据库代码放在您的 JSP 中! JSP 是 view 组件,您的查询应该封装在 model 端的 bean 中(请参阅here 了解大图)。一旦你建立了这个结构,你会发现很多问题都解决了。
-
与您的问题相关:在您的
<input>字段中添加唯一ID,以便提交后您可以找出哪些已被修改。 -
通常情况下,为这样的简单案例构建 MVC 纯粹是矫枉过正,因为它需要额外的代码并且需要时间来构建和部署,而仅将代码放入 JSP 需要您基本上刷新页面。
-
@Endy 完全同意你的看法。但现实世界中的任何项目都不会如此小或如此简单。所以我猜 f_puras 只是在提醒(教育)他面对现实世界的场景。