crud in servlet
In Java, CRUD (Create, Read, Update, Delete) operations can be implemented in Servlets to interact with a database or another data source. Servlets can act as controllers that receive HTTP requests, process them, and send back responses. Here's an example of a simple Servlet that implements CRUD operations using JDBC:
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class StudentServlet extends HttpServlet {
private Connection connection;
@Override
public void init() throws ServletException {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
} catch (ClassNotFoundException | SQLException e) {
throw new ServletException(e);
}
}
@Override
public void destroy() {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
// Ignore
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String action = request.getParameter("action");
if ("list".equals(action)) {
listStudents(request, response);
} else if ("edit".equals(action)) {
showEditForm(request, response);
} else if ("delete".equals(action)) {
deleteStudent(request, response);
} else {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
}
} catch (SQLException e) {
throw new ServletException(e);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String action = request.getParameter("action");
if ("create".equals(action)) {
createStudent(request, response);
} else if ("update".equals(action)) {
updateStudent(request, response);
} else {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
}
} catch (SQLException e) {
throw new ServletException(e);
}
}
private void listStudents(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM students");
request.setAttribute("students", resultSet);
request.getRequestDispatcher("list.jsp").forward(request, response);
}
private void showEditForm(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
PreparedStatement statement = connection.prepareStatement("SELECT * FROM students WHERE id = ?");
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
request.setAttribute("student", resultSet);
request.getRequestDispatcher("edit.jsp").forward(request, response);
} else {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
}
private void createStudent(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
PreparedStatement statement = connection.prepareStatement("INSERT INTO students (name, age) VALUES (?, ?)");
statement.setString(1, name);
statement.setInt(2, age);
statement.executeUpdate();
response.sendRedirect("student?action=list");
}
private void updateStudent(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
PreparedStatement statement = connection.prepareStatement("UPDATE students SET name = ?, age = ? WHERE id = ?");
statement.setString(1, name);
statement.setInt(2, age);
statement.setInt(3, idSource:tfigi.wwwidea.com