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>