JDBC CRUD Operations in Java Web Applications

Database Implementation Components

Entity Class

public class Person {
    private String fullName;
    private String years;
    private String gender;

    public Person(String fullName, String years, String gender) {
        this.fullName = fullName;
        this.years = years;
        this.gender = gender;
    }

    // Getters and setters
    public String getFullName() { return fullName; }
    public void setFullName(String fullName) { this.fullName = fullName; }
    public String getYears() { return years; }
    public void setYears(String years) { this.years = years; }
    public String getGender() { return gender; }
    public void setGender(String gender) { this.gender = gender; }
}

Database Utility Clas

import java.sql.*;

public class DBConnector {
    private static final String DB_URL = "jdbc:mysql://localhost:3306/user_db?useSSL=false";
    private static final String DB_USER = "admin";
    private static final String DB_PASSWORD = "securepass";

    public static Connection createConnection() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            return DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
        } catch (Exception e) {
            throw new RuntimeException("Database connection failed", e);
        }
    }

    public static void releaseResources(ResultSet rs, Statement stmt, Connection conn) {
        try { if (rs != null) rs.close(); } catch (SQLException ignore) {}
        try { if (stmt != null) stmt.close(); } catch (SQLException ignore) {}
        try { if (conn != null) conn.close(); } catch (SQLException ignore) {}
    }
}

Data Access Object

import java.util.*;
import java.sql.*;

public class PersonDAO {
    public static List<person> fetchAllPersons() {
        List<person> persons = new ArrayList<>();
        Connection conn = DBConnector.createConnection();
        Statement stmt = null;
        ResultSet rs = null;
        
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT full_name, years, gender FROM person_data");
            while (rs.next()) {
                persons.add(new Person(
                    rs.getString("full_name"),
                    rs.getString("years"),
                    rs.getString("gender")
                ));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnector.releaseResources(rs, stmt, conn);
        }
        return persons;
    }

    public static void addPerson(Person individual) {
        Connection conn = DBConnector.createConnection();
        PreparedStatement pstmt = null;
        
        try {
            pstmt = conn.prepareStatement(
                "INSERT INTO person_data(full_name, years, gender) VALUES (?, ?, ?)");
            pstmt.setString(1, individual.getFullName());
            pstmt.setString(2, individual.getYears());
            pstmt.setString(3, individual.getGender());
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnector.releaseResources(null, pstmt, conn);
        }
    }

    // Update and delete methods follow similar patterns
}</person></person>

Service Layer

import java.util.List;

public class PersonService {
    public List<person> retrieveAllPersons() {
        return PersonDAO.fetchAllPersons();
    }
    
    public void createNewPerson(Person individual) {
        PersonDAO.addPerson(individual);
    }
    
    // Additional service methods for update/delete
}</person>

Servlet Controller

import java.io.IOException;
import java.util.List;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/PersonController")
public class PersonController extends HttpServlet {
    private final PersonService personService = new PersonService();

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        
        request.setCharacterEncoding("UTF-8");
        String operation = request.getParameter("action");
        
        if ("create".equals(operation)) {
            createPerson(request, response);
        } else if ("modify".equals(operation)) {
            modifyPerson(request, response);
        }
    }

    private void createPerson(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        
        Person individual = new Person(
            request.getParameter("fullName"),
            request.getParameter("years"),
            request.getParameter("gender")
        );
        personService.createNewPerson(individual);
        request.getRequestDispatcher("main.jsp").forward(request, response);
    }

    private void displayPersons(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        
        List<person> persons = personService.retrieveAllPersons();
        request.setAttribute("personList", persons);
        request.getRequestDispatcher("view.jsp").forward(request, response);
    }
}</person>

View Templates

Main Interface (main.jsp)
<div align="center">
  <h1>Person Management</h1>
  <a href="add.jsp">Add Record</a>
  <a href="view.jsp">View Records</a>
</div>
Add Record Form (add.jsp)
<form action="PersonController?action=create" method="post">
  Name: <input type="text" name="fullName">
  Age: <input type="text" name="years">
  Gender: <input type="text" name="gender">
  <button type="submit">Add</button>
</form>
Records Display (view.jsp)
<table>
  <tr>
    <th>Name</th><th>Age</th><th>Gender</th>
  </tr>
  <c:forEach items="${personList}" var="person">
  <tr>
    <td>${person.fullName}</td>
    <td>${person.years}</td>
    <td>${person.gender}</td>
  </tr>
  </c:forEach>
</table>

Tags: JDBC MySQL JavaEE servlet JSP

Posted on Sat, 16 May 2026 08:09:50 +0000 by Harley1979