一文带你吃透JSP增删改查实战案例详细解读
概述
本文将介绍JSP的增删改查实战案例,包含如下内容:
- 数据库的创建与数据表的设计
- JSP页面的开发
- Servlet的编写
- 实现增删改查功能
数据库的创建与数据表的设计
在本案例中,我们将以MySQL数据库为例进行数据库的创建和数据表的设计,具体步骤如下:
创建数据库
打开MySQL客户端,输入以下命令创建一个名为“hospital”的数据库:
CREATE DATABASE hospital;
创建数据表
在“hospital”数据库中创建一个名为“patient”的数据表,包含以下字段:
- id:患者ID,类型为int,主键
- name:患者姓名,类型为varchar(20)
- age:患者年龄,类型为int
- gender:患者性别,类型为varchar(4)
- department:患者所在科室,类型为varchar(20)
以下是创建数据表的SQL语句:
USE hospital;
CREATE TABLE patient (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INT NOT NULL,
gender VARCHAR(4) NOT NULL,
department VARCHAR(20) NOT NULL
);
JSP页面的开发
在本案例中,我们将开发四个JSP页面,分别对应增删改查四个功能。
页面1:新增患者信息
该页面包含一个表单,用户可以在表单中输入患者信息,点击“提交”按钮后将信息插入数据库中。
以下是页面1的代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新增患者信息</title>
</head>
<body>
<h1>新增患者信息</h1>
<form action="addPatient" method="post">
<p><label>姓名:<input type="text" name="name"></label></p>
<p><label>年龄:<input type="text" name="age"></label></p>
<p><label>性别:<input type="text" name="gender"></label></p>
<p><label>科室:<input type="text" name="department"></label></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
页面2:查看患者列表
该页面包含一个表格,显示数据库中所有患者的信息。
以下是页面2的代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>患者列表</title>
</head>
<body>
<h1>患者列表</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>科室</th>
</tr>
</thead>
<tbody>
<%
List<Patient> patients = (List<Patient>)request.getAttribute("patients");
for (Patient patient : patients) {
%>
<tr>
<td><%=patient.getId()%></td>
<td><%=patient.getName()%></td>
<td><%=patient.getAge()%></td>
<td><%=patient.getGender()%></td>
<td><%=patient.getDepartment()%></td>
</tr>
<% } %>
</tbody>
</table>
</body>
</html>
页面3:修改患者信息
该页面包含一个表单,用户可以在表单中修改患者信息,点击“提交”按钮后将信息更新到数据库中。
以下是页面3的代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>修改患者信息</title>
</head>
<body>
<h1>修改患者信息</h1>
<form action="updatePatient" method="post">
<input type="hidden" name="id" value="<%=patient.getId()%>">
<p><label>姓名:<input type="text" name="name" value="<%=patient.getName()%>"></label></p>
<p><label>年龄:<input type="text" name="age" value="<%=patient.getAge()%>"></label></p>
<p><label>性别:<input type="text" name="gender" value="<%=patient.getGender()%>"></label></p>
<p><label>科室:<input type="text" name="department" value="<%=patient.getDepartment()%>"></label></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
页面4:删除患者信息
该页面包含一个表单,用户可以在表单中输入患者ID,点击“提交”按钮后将该患者信息从数据库中删除。
以下是页面4的代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>删除患者信息</title>
</head>
<body>
<h1>删除患者信息</h1>
<form action="deletePatient" method="post">
<p><label>患者ID:<input type="text" name="id"></label></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
Servlet的编写
在本案例中,我们将编写一个Servlet类,通过该类实现对数据库的增删改查操作。
以下是Servlet类的主要代码:
@WebServlet(name = "PatientServlet", urlPatterns = {"/listPatients", "/addPatient", "/getPatient", "/updatePatient", "/deletePatient"})
public class PatientServlet extends HttpServlet {
private PatientDAO patientDAO;
@Override
public void init() throws ServletException {
super.init();
patientDAO = new PatientDAOImpl();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String servletPath = request.getServletPath();
if ("/addPatient".equals(servletPath)) {
doAddPatient(request, response);
} else if ("/updatePatient".equals(servletPath)) {
doUpdatePatient(request, response);
} else if ("/deletePatient".equals(servletPath)) {
doDeletePatient(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String servletPath = request.getServletPath();
if ("/listPatients".equals(servletPath)) {
doListPatients(request, response);
} else if ("/getPatient".equals(servletPath)) {
doGetPatient(request, response);
}
}
private void doAddPatient(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String department = request.getParameter("department");
Patient patient = new Patient(name, age, gender, department);
patientDAO.add(patient);
response.sendRedirect(request.getContextPath() + "/listPatients");
}
// 其余方法省略
}
实现增删改查功能
通过以上代码,我们已经可以实现对数据库的增删改操作了。最后的步骤是将上述四个JSP页面进行路由与Servlet类绑定,使得点击对应的按钮能够访问到对应的Servlet方法,并且将查询到的结果渲染到JSP页面上。
其中,查询操作需要实现分页功能,这里给出一个简单的实现示例:
private void doListPatients(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
int size = 10;
List<Patient> patients = patientDAO.list((page - 1) * size, size);
request.setAttribute("patients", patients);
request.getRequestDispatcher("/listPatients.jsp").forward(request, response);
}
至此,JSP的增删改查实战案例就介绍完了,以上是一个简单的示例,供大家学习参考。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你吃透JSP增删改查实战案例详细解读 - Python技术站