jdbcData.jsp
это показывает результат целых строк и столбцов таблицы reg
с ссылкой на действие удалить. Я хочу удалить только строка данных при нажатии на удалении ссылка. Что мне делать?Как удалить выбранные данные из базы данных с помощью jsp?
примечание: второй скрипт называется 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");
%>
Пожалуйста, переключитесь на использование '' PreparedStatement'' (http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html). Ваш 'DELETE' уязвим для SQL-инъекции; вся таблица будет стерта, когда кто-то перейдет в id ''OR 1 = 1 --'. –
Привет, спасибо за предложение. Но я ученик. подготовленное заявление будет у нас в следующей лекции JDBC. Лекция сегодняшнего дня собиралась подключить jdbc с формой реестрации. но я хочу узнать больше, поэтому я решил сделать это и получил ошибку. Я буду очень благодарен, если кто-нибудь даст мне решение этого вопроса @mick Mnemonic –