我无法从DB(MySql)中删除带有空格的数据,例如:
" blabla blabla"或" blabla",但没有空格的数据删除:" blablabla"
以下是我在JSP中的价值:
<a href=deleteData?id=<%= rs.getString(1)></a>
和deleteData - servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
@WebServlet("/deleteData")
public class deleteData extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String value = request.getParameter("id");
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/evernoteDB",
"evernoteDB", "0633739768z");
Statement st = conn.createStatement();
st.executeUpdate("DELETE FROM note WHERE noteName='" + value + "'");
response.sendRedirect("/userNotes.jsp");
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} 我认为问题出在-getString函数中,但是在oracle网站上提到这个函数正在获取所有行,我很失望
答案 0 :(得分:0)
您正在重定向到您的href,并且URL中的空格被转换为%20,这就是为什么当您通过&#34; blabla blabla&#34;您的删除不匹配结果。你应该消毒你的价值。
快速的方式:
将%20替换为空字符串