【发布时间】:2015-07-23 18:18:49
【问题描述】:
jdbcData.jsp 这显示整行的结果
和表reg 的列以及操作链接
删除。我只想删除那个
单击删除时打开的数据行
关联。我该怎么办?
注意:第二个 scriptlet 被命名为 jdbcDelete.jsp。
jdbcData.jsp
<%
Statement st =null;
ResultSet rs =null;
String s1 = request.getParameter("fn");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/innoventa","root","root");
st =con.createStatement();
rs=st.executeQuery("select * from reg");
%>
<table border="1" align="center" cellpadding="10dx" summary="all posts" >
<tr>
<td><b>Id</b></td>
<td><b>First Name</b></td>
<td><b>Last Name</b></td>
<td><b>Action</b></td>
</tr>
<%
while(rs.next()) {
int a = rs.getInt("id");
String b =rs.getString("fname");
String c=rs.getString("lname");
%>
<tr>
<td><%out.println(a);%></td>
<td><%out.println(b);%></td>
<td><%out.println(c);%></td>
<td><a href="jdbcDelete.jsp?id1=<%=a%>">Delete</a></td>
</tr>
<%
}
%>
</table>
<%
st.close();
con.close();
%>
jdbcDelete.jsp
<% Integer dlt =(Integer)request.getAttribute("id1");
ResultSet rs=null;
Statement st=null;
rs = st.executeQuery("delete from reg where id='"+dlt+"'");
response.sendRedirect("jdbcData.jsp");
%>
【问题讨论】:
-
请改用
PreparedStatements。您的DELETE容易受到 SQL 注入;当有人通过 id' OR 1=1 --传递时,整个表将被删除。 -
嘿,谢谢你的建议,但我是学习者。准备好的语句将在下一个 JDBC 讲座中向我们介绍。今天的讲座将连接 jdbc 和 regestration 表格。但我想了解更多,所以我决定这样做并出错。如果有人给我解决方案,我将非常感谢@mick Mnemonic
标签: mysql jsp jdbc sql-delete