Я не могу удалить данные, из БД (MySql), с пробелами, например:
«BlaBla BlaBla» или «BlaBla», но данные без пробелов удаление: «блаблабла "
Вот как я получаю значение в JSP:удалить данные из БД с пробелами в 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 упоминается, что эта функция получает все строки, я разочарован
Ну, для начала, используйте 'PreparedStatement'; как сейчас, ваш код становится жертвой SQL-инъекции. – fge
@fge - это правильно. Я рекомендовал то же самое вчера по вашему последнему вопросу, на который я ответил за вас. Пожалуйста, прибегайте к использованию лучших практик как можно скорее. Отключение их просто поможет вам улучшить свои навыки. И использование 'PreparedStatement' - это всего лишь две дополнительные строки! –
@RaviThapliyal Спасибо, что я, хотя PreparedStatement не решает эту проблему –