本次作业具体参考《老年人能力评估MZT039-2013民政部标准》,按照其中的标准进行编写,还参考了微信公众号“职培云”。
一、系统功能概述:
1、老年人注册或者信息导入;
2、老年人能力定期评估;
3、能力评估数据多条件查询;
4、能力数据统计;
5、能力数据导出。
由于能力不足开发的系统功能并不齐全,以后一定会继续努力。
二、环境准备
JDK:确保安装了 Java Development Kit(JDK),推荐使用 JDK 8 或更高版本。
IDEA:下载并安装 IntelliJ IDEA,建议使用 Ultimate 版本,因为它对 Web 开发支持更全面。
数据库:选择一种数据库,这里以 MySQL 为例,安装并启动 MySQL 服务。
Maven:IDEA 内置了 Maven 支持,确保 Maven 配置正确,能够下载依赖库。
三、系统框架
elderly - assessment - system
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── elderlyassessment
│ │ │ ├── controller
│ │ │ │ ├── RegistrationController.java
│ │ │ │ ├── AssessmentController.java
│ │ │ │ ├── QueryController.java
│ │ │ │ ├── StatisticsController.java
│ │ │ │ └── ExportController.java
│ │ │ ├── dao
│ │ │ │ ├── ElderlyDao.java
│ │ │ │ ├── AssessmentDao.java
│ │ │ │ └── impl
│ │ │ │ ├── ElderlyDaoImpl.java
│ │ │ │ └── AssessmentDaoImpl.java
│ │ │ ├── model
│ │ │ │ ├── Elderly.java
│ │ │ │ ├── Assessment.java
│ │ │ │ └── dto
│ │ │ │ ├── ElderlyDTO.java
│ │ │ │ └── AssessmentDTO.java
│ │ │ ├── service
│ │ │ │ ├── ElderlyService.java
│ │ │ │ ├── AssessmentService.java
│ │ │ │ └── impl
│ │ │ │ ├── ElderlyServiceImpl.java
│ │ │ │ └── AssessmentServiceImpl.java
│ │ │ ├── util
│ │ │ │ ├── DBConnectionUtil.java
│ │ │ │ ├── DateUtil.java
│ │ │ │ └── ExcelExportUtil.java
│ │ │ └── exception
│ │ │ ├── DatabaseException.java
│ │ │ └── ServiceException.java
│ │ ├── resources
│ │ │ ├── db.properties
│ │ │ └── log4j.properties
│ │ └── webapp
│ │ ├── WEB - INF
│ │ │ ├── web.xml
│ │ │ └── views
│ │ │ ├── registration.jsp
│ │ │ ├── assessment.jsp
│ │ │ ├── query.jsp
│ │ │ ├── statistics.jsp
│ │ │ ├── export.jsp
│ │ │ └── templates
│ │ │ ├── header.jsp
│ │ │ └── footer.jsp
│ │ ├── index.jsp
│ │ ├── css
│ │ │ ├── style.css
│ │ │ └── responsive.css
│ │ └── js
│ │ ├── main.js
│ │ └── validation.js
│ └── test
│ └── java
│ └── com
│ └── example
│ └── elderlyassessment
│ ├── controller
│ │ ├── RegistrationControllerTest.java
│ │ ├── AssessmentControllerTest.java
│ │ ├── QueryControllerTest.java
│ │ ├── StatisticsControllerTest.java
│ │ └── ExportControllerTest.java
│ ├── dao
│ │ ├── ElderlyDaoTest.java
│ │ └── AssessmentDaoTest.java
│ ├── service
│ │ ├── ElderlyServiceTest.java
│ │ └── AssessmentServiceTest.java
│ └── util
│ ├── DBConnectionUtilTest.java
│ ├── DateUtilTest.java
│ └── ExcelExportUtilTest.java
└── pom.xml
四、源代码
DBConnectionUtil.java
`package com.example.elderlyassessment.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBConnectionUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
static {
Properties properties = new Properties();
InputStream inputStream = DBConnectionUtil.class.getClassLoader().getResourceAsStream("db.properties");
try {
properties.load(inputStream);
driver = properties.getProperty("jdbc.driver");
url = properties.getProperty("jdbc.url");
username = properties.getProperty("jdbc.username");
password = properties.getProperty("jdbc.password");
Class.forName(driver);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
}Elderly.java
package com.example.elderlyassessment.model;
public class Elderly {
private int id;
private String name;
private int age;
private String gender;
private String contact;
private String address;
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}Assessment.java
package com.example.elderlyassessment.model;
import java.util.Date;
public class Assessment {
private int id;
private int elderlyId;
private Date assessmentDate;
private int physicalAbilityScore;
private int cognitiveAbilityScore;
private int selfCareAbilityScore;
private int totalScore;
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getElderlyId() {
return elderlyId;
}
public void setElderlyId(int elderlyId) {
this.elderlyId = elderlyId;
}
public Date getAssessmentDate() {
return assessmentDate;
}
public void setAssessmentDate(Date assessmentDate) {
this.assessmentDate = assessmentDate;
}
public int getPhysicalAbilityScore() {
return physicalAbilityScore;
}
public void setPhysicalAbilityScore(int physicalAbilityScore) {
this.physicalAbilityScore = physicalAbilityScore;
}
public int getCognitiveAbilityScore() {
return cognitiveAbilityScore;
}
public void setCognitiveAbilityScore(int cognitiveAbilityScore) {
this.cognitiveAbilityScore = cognitiveAbilityScore;
}
public int getSelfCareAbilityScore() {
return selfCareAbilityScore;
}
public void setSelfCareAbilityScore(int selfCareAbilityScore) {
this.selfCareAbilityScore = selfCareAbilityScore;
}
public int getTotalScore() {
return totalScore;
}
public void setTotalScore(int totalScore) {
this.totalScore = totalScore;
}
}ElderlyDao.java
package com.example.elderlyassessment.dao;
import com.example.elderlyassessment.model.Elderly;
import com.example.elderlyassessment.util.DBConnectionUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ElderlyDao {
public void addElderly(Elderly elderly) {
String sql = "INSERT INTO elderly (name, age, gender, contact, address) VALUES (?,?,?,?,?)";
try (Connection conn = DBConnectionUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, elderly.getName());
pstmt.setInt(2, elderly.getAge());
pstmt.setString(3, elderly.getGender());
pstmt.setString(4, elderly.getContact());
pstmt.setString(5, elderly.getAddress());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Elderly> getAllElderly() {
List<Elderly> elderlyList = new ArrayList<>();
String sql = "SELECT * FROM elderly";
try (Connection conn = DBConnectionUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
Elderly elderly = new Elderly();
elderly.setId(rs.getInt("id"));
elderly.setName(rs.getString("name"));
elderly.setAge(rs.getInt("age"));
elderly.setGender(rs.getString("gender"));
elderly.setContact(rs.getString("contact"));
elderly.setAddress(rs.getString("address"));
elderlyList.add(elderly);
}
} catch (SQLException e) {
e.printStackTrace();
}
return elderlyList;
}
}AssessmentDao.java
package com.example.elderlyassessment.dao;
import com.example.elderlyassessment.model.Assessment;
import com.example.elderlyassessment.util.DBConnectionUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class AssessmentDao {
public void addAssessment(Assessment assessment) {
String sql = "INSERT INTO assessment (elderly_id, assessment_date, physical_ability_score, cognitive_ability_score, self_care_ability_score, total_score) VALUES (?,?,?,?,?,?)";
try (Connection conn = DBConnectionUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, assessment.getElderlyId());
pstmt.setDate(2, new java.sql.Date(assessment.getAssessmentDate().getTime()));
pstmt.setInt(3, assessment.getPhysicalAbilityScore());
pstmt.setInt(4, assessment.getCognitiveAbilityScore());
pstmt.setInt(5, assessment.getSelfCareAbilityScore());
pstmt.setInt(6, assessment.getTotalScore());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Assessment> getAssessmentsByElderlyId(int elderlyId) {
List<Assessment> assessmentList = new ArrayList<>();
String sql = "SELECT * FROM assessment WHERE elderly_id = ?";
try (Connection conn = DBConnectionUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, elderlyId);
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
Assessment assessment = new Assessment();
assessment.setId(rs.getInt("id"));
assessment.setElderlyId(rs.getInt("elderly_id"));
assessment.setAssessmentDate(rs.getDate("assessment_date"));
assessment.setPhysicalAbilityScore(rs.getInt("physical_ability_score"));
assessment.setCognitiveAbilityScore(rs.getInt("cognitive_ability_score"));
assessment.setSelfCareAbilityScore(rs.getInt("self_care_ability_score"));
assessment.setTotalScore(rs.getInt("total_score"));
assessmentList.add(assessment);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return assessmentList;
}
}RegistrationController.java
package com.example.elderlyassessment.controller;
import com.example.elderlyassessment.dao.ElderlyDao;
import com.example.elderlyassessment.model.Elderly;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/registration")
public class RegistrationController extends HttpServlet {
private ElderlyDao elderlyDao = new ElderlyDao();
@Override
protected void doPost(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 contact = request.getParameter("contact");
String address = request.getParameter("address");
Elderly elderly = new Elderly();
elderly.setName(name);
elderly.setAge(age);
elderly.setGender(gender);
elderly.setContact(contact);
elderly.setAddress(address);
elderlyDao.addElderly(elderly);
response.sendRedirect("registration.jsp?success=true");
}
}registration.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
老年人注册
<% if (request.getParameter("success") != null && request.getParameter("success").equals("true")) { %>注册成功!
<% } %> ` AssessmentController.java `package com.example.elderlyassessment.controller;import com.example.elderlyassessment.dao.AssessmentDao;
import com.example.elderlyassessment.dao.ElderlyDao;
import com.example.elderlyassessment.model.Assessment;
import com.example.elderlyassessment.model.Elderly;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
@WebServlet("/assessment")
public class AssessmentController extends HttpServlet {
private AssessmentDao assessmentDao = new AssessmentDao();
private ElderlyDao elderlyDao = new ElderlyDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("elderlyList", elderlyDao.getAllElderly());
request.getRequestDispatcher("assessment.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int elderlyId = Integer.parseInt(request.getParameter("elderlyId"));
int physicalScore = Integer.parseInt(request.getParameter("physicalScore"));
int cognitiveScore = Integer.parseInt(request.getParameter("cognitiveScore"));
int selfCareScore = Integer.parseInt(request.getParameter("selfCareScore"));
int totalScore = physicalScore + cognitiveScore + selfCareScore;
Assessment assessment = new Assessment();
assessment.setElderlyId(elderlyId);
assessment.setAssessmentDate(new Date());
assessment.setPhysicalAbilityScore(physicalScore);
assessment.setCognitiveAbilityScore(cognitiveScore);
assessment.setSelfCareAbilityScore(selfCareScore);
assessment.setTotalScore(totalScore);
assessmentDao.addAssessment(assessment);
response.sendRedirect("assessment.jsp?success=true");
}
}assessment.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
老年人能力评估
<% if (request.getParameter("success") != null && request.getParameter("success").equals("true")) { %>评估信息提交成功!
<% } %> ` QueryController.java `package com.example.elderlyassessment.controller;import com.example.elderlyassessment.dao.AssessmentDao;
import com.example.elderlyassessment.dao.ElderlyDao;
import com.example.elderlyassessment.model.Assessment;
import com.example.elderlyassessment.model.Elderly;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@WebServlet("/query")
public class QueryController extends HttpServlet {
private AssessmentDao assessmentDao = new AssessmentDao();
private ElderlyDao elderlyDao = new ElderlyDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String elderlyName = request.getParameter("elderlyName");
String startDateStr = request.getParameter("startDate");
String endDateStr = request.getParameter("endDate");
String minScoreStr = request.getParameter("minScore");
String maxScoreStr = request.getParameter("maxScore");
List<Assessment> assessmentList = new ArrayList<>();
List<Elderly> elderlyList = elderlyDao.getAllElderly();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = null;
Date endDate = null;
int minScore = 0;
int maxScore = Integer.MAX_VALUE;
try {
if (startDateStr != null && !startDateStr.isEmpty()) {
startDate = sdf.parse(startDateStr);
}
if (endDateStr != null && !endDateStr.isEmpty()) {
endDate = sdf.parse(endDateStr);
}
if (minScoreStr != null && !minScoreStr.isEmpty()) {
minScore = Integer.parseInt(minScoreStr);
}
if (maxScoreStr != null && !maxScoreStr.isEmpty()) {
maxScore = Integer.parseInt(maxScoreStr);
}
} catch (ParseException | NumberFormatException e) {
e.printStackTrace();
}
for (Elderly elderly : elderlyList) {
if (elderlyName == null || elderlyName.isEmpty() || elderly.getName().contains(elderlyName)) {
List<Assessment> assessments = assessmentDao.getAssessmentsByElderlyId(elderly.getId());
for (Assessment assessment : assessments) {
boolean isDateValid = (startDate == null || assessment.getAssessmentDate().after(startDate)) &&
(endDate == null || assessment.getAssessmentDate().before(endDate));
boolean isScoreValid = assessment.getTotalScore() >= minScore && assessment.getTotalScore() <= maxScore;
if (isDateValid && isScoreValid) {
assessmentList.add(assessment);
}
}
}
}
request.setAttribute("assessmentList", assessmentList);
request.getRequestDispatcher("query.jsp").forward(request, response);
}
}query.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
能力评估数据查询
老年人 ID | 评估日期 | 身体机能得分 | 认知能力得分 | 生活自理能力得分 | 总得分 |
---|---|---|---|---|---|
${assessment.elderlyId} | <%= new java.text.SimpleDateFormat("yyyy-MM-dd").format(assessment.assessmentDate) %> | ${assessment.physicalAbilityScore} | ${assessment.cognitiveAbilityScore} | ${assessment.selfCareAbilityScore} | ${assessment.totalScore} |
import com.example.elderlyassessment.dao.AssessmentDao;
import com.example.elderlyassessment.model.Assessment;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/statistics")
public class StatisticsController extends HttpServlet {
private AssessmentDao assessmentDao = new AssessmentDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Assessment> assessmentList = assessmentDao.getAllAssessments();
int totalAssessments = assessmentList.size();
int totalScore = 0;
for (Assessment assessment : assessmentList) {
totalScore += assessment.getTotalScore();
}
double averageScore = totalAssessments > 0 ? (double) totalScore / totalAssessments : 0;
request.setAttribute("totalAssessments", totalAssessments);
request.setAttribute("averageScore", averageScore);
request.getRequestDispatcher("statistics.jsp").forward(request, response);
}
}statistics.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
能力数据统计
总评估次数:${totalAssessments}
平均得分:${averageScore}
` ExportController.java `package com.example.elderlyassessment.controller;import com.example.elderlyassessment.dao.AssessmentDao;
import com.example.elderlyassessment.model.Assessment;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
@WebServlet("/export")
public class ExportController extends HttpServlet {
private AssessmentDao assessmentDao = new AssessmentDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Assessment> assessmentList = assessmentDao.getAllAssessments();
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("评估数据");
Row headerRow = sheet.createRow(0);
String[] headers = {"评估 ID", "老年人 ID", "评估日期", "身体机能得分", "认知能力得分", "生活自理能力得分", "总得分"};
for (int i = 0; i < headers.length; i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(headers[i]);
}
int rowNum = 1;
for (Assessment assessment : assessmentList) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(assessment.getId());
row.createCell(1).setCellValue(assessment.getElderlyId());
row.createCell(2).setCellValue(assessment.getAssessmentDate().toString());
row.createCell(3).setCellValue(assessment.getPhysicalAbilityScore());
row.createCell(4).setCellValue(assessment.getCognitiveAbilityScore());
row.createCell(5).setCellValue(assessment.getSelfCareAbilityScore());
row.createCell(6).setCellValue(assessment.getTotalScore());
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=assessment_data.xlsx");
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
workbook.close();
outputStream.flush();
outputStream.close();
}
}`
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)