Не могу удалить студента из Базы Данных по ID. Где я ошибся?
int id = request.getParameter("id"); здесь ругается
Мой сервлет:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Добавлен</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Добавлнен в класс из " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
PrintWriter out = response.getWriter();
String name1 = request.getParameter("name");
String surname1 = request.getParameter("surname");
String action = request.getParameter("actionname");
if(action.equals("addstudent")){
String name = request.getParameter("name");
String surname = request.getParameter("surname");
try{
insertstudent(name, surname);
}catch(SQLException ex){
}
}
if(action.equals("RemoveStudent")){
int id = request.getParameter("id");
try{
delete(id);
}catch(SQLException ex){
}
}
}
public String insertstudent(String name, String surname) throws SQLException {
String sql = "INSERT INTO student (name, surname) VALUES(?,?);";
Connection con = null;
PreparedStatement prep = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT", "root", "123456");
prep = con.prepareStatement(sql);
prep.setString(1, name);
prep.setString(2, surname);
prep.executeUpdate();
prep.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return "successfully added";
}
public String delete(Integer id) throws SQLException {
String sql = "DELETE FROM student WHERE id = '?';";
Connection con = null;
PreparedStatement prep = null;
try {
Class.forName("com.mysql.jdbc."
+ "Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT", "root", "123456");
prep.setInt(1, id);
prep.executeUpdate();
prep.close();
prep = con.prepareStatement(sql);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "successfully delete";
}
}
Мой JSP по удалению:
<%@page import="java.sql.*"%>
<% Class.forName("com.mysql.jdbc.Driver"); %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>fSchool</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="css/RemoveStudent.css">
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="css/menu.css">
<script src="js/jquery1111.min.js" type="text/javascript"></script>
<script src="js/script.js"></script>
</head>
<body class="home-page">
<div class="wrap-body">
<header>
<div id="cssmenu" >
<ul>
<li class="active"><a href="index.html"><span>FSchool</span></a></li>
<li class="has-sub"><a href="#"><span>Students</span></a>
<ul>
<li class="has-sub"><a href="#"><span>Show All Students</span></a>
<ul>
<li><a href="#"><span>Add</span></a></li>
<li class="last"><a href="#"><span>Remove</span></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="archive.html"><span>Media</span></a></li>
<li><a href="single.html"><span>Skills</span></a></li>
<li class="last"><a href="contact.html"><span>About</span></a></li>
</ul>
</div>
</div>
</table
<div class="RemoveStudent">
<h1>Remove Student</h1>
<form action="MyServlet" method="Post">
id : <input type="number" id="id"><br><br>
<input type="hidden" value="RemoveStudent" name="actionname">
<input type="submit" value="Send"><br>
</form>
</div>
</body>
</html>
исходя из документации
кусок кода вроде должен быть таким:
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT", "root", "123456");
prep = con.prepareStatement(sql);
prep.setInt(1, id);
prep.executeUpdate();
prep.close();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости