随笔- 120  文章- 1  评论- 0  阅读- 444 

本次作业具体参考《老年人能力评估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.javapackage 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.javapackage 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.javapackage 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.javapackage 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.javapackage 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}
` StatisticsController.java `package com.example.elderlyassessment.controller;

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();
}

}`

 posted on   敝屣  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示