假期作业4

新建信息界面:

点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>新建基本信息表</title>
    <style>
        /* 全局样式 */
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #f9f9f9;
            color: #333;
            margin: 0;
            padding: 20px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        h1 {
            color: #007BFF;
            font-size: 28px;
            margin-bottom: 20px;
        }
        form {
            background-color: #fff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 600px;
            display: flex;
            flex-direction: column;
        }
        label {
            display: block;
            font-weight: 600;
            margin-bottom: 5px;
            color: #555;
        }
        input[type="text"],
        input[type="date"],
        input[type="number"] {
            width: 100%;
            padding: 12px;
            margin-bottom: 20px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            font-size: 16px;
        }
        input[type="text"]:focus,
        input[type="date"]:focus,
        input[type="number"]:focus {
            border-color: #007BFF;
            outline: none;
            box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
        }
        input[type="submit"] {
            background-color: #007BFF;
            color: white;
            padding: 12px 20px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s ease;
        }
        input[type="submit"]:hover {
            background-color: #0056b3;
        }
        #message {
            margin-top: 20px;
            padding: 10px;
            border-radius: 4px;
            text-align: center;
            font-size: 16px;
        }
        #message.success {
            background-color: #d4edda;
            color: #155724;
        }
        #message.error {
            background-color: #f8d7da;
            color: #721c24;
        }
        /* 响应式设计 */
        @media (max-width: 600px) {
            form {
                padding: 20px;
            }
        }
    </style>
</head>
<body>
<h1>新建基本信息表</h1>
<form id="addDataForm" action="${pageContext.request.contextPath}/addBaseServlet" method="post">
    <!-- 评估日期 -->
    <label for="assessmentDate">评估日期:</label>
    <input type="date" id="assessmentDate" name="assessmentDate" required>
    <!-- 评估原因 -->
    <label for="assessmentReason">评估原因:</label>
    <input type="number" id="assessmentReason" name="assessmentReason" required>
    <!-- 姓名 -->
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name" required>
    <!-- 性别 -->
    <label for="gender">性别:</label>
    <input type="text" id="gender" name="gender" required>
    <!-- 出生日期 -->
    <label for="birthDate">出生日期:</label>
    <input type="date" id="birthDate" name="birthDate" required>
    <!-- 身份证号 -->
    <label for="idCard">身份证号:</label>
    <input type="text" id="idCard" name="idCard" required>
    <!-- 社保卡号 -->
    <label for="socialCard">社保卡号:</label>
    <input type="text" id="socialCard" name="socialCard" required>
    <!-- 民族 -->
    <label for="ethnicity">民族:</label>
    <input type="text" id="ethnicity" name="ethnicity" required>
    <!-- 文化程度 -->
    <label for="educationLevel">文化程度:</label>
    <input type="number" id="educationLevel" name="educationLevel" required>
    <!-- 宗教信仰 -->
    <label for="religious">宗教信仰:</label>
    <input type="number" id="religious" name="religious" required>
    <!-- 婚姻状况 -->
    <label for="maritalStatus">婚姻状况:</label>
    <input type="number" id="maritalStatus" name="maritalStatus" required>
    <!-- 居住情况 -->
    <label for="livingCondition">居住情况:</label>
    <input type="number" id="livingCondition" name="livingCondition" required>
    <!-- 医疗费用支付方式 -->
    <label for="medicalPayment">医疗费用支付方式:</label>
    <input type="number" id="medicalPayment" name="medicalPayment" required>
    <!-- 经济来源 -->
    <label for="economicSource">经济来源:</label>
    <input type="number" id="economicSource" name="economicSource" required>
    <!-- 痴呆情况 -->
    <label for="dementia">痴呆情况:</label>
    <input type="number" id="dementia" name="dementia" required>
    <!-- 精神疾病情况 -->
    <label for="mentalIllness">精神疾病情况:</label>
    <input type="number" id="mentalIllness" name="mentalIllness" required>
    <!-- 慢性疾病 -->
    <label for="chronicDiseases">慢性疾病:</label>
    <input type="text" id="chronicDiseases" name="chronicDiseases" required>
    <!-- 跌倒情况 -->
    <label for="fall">跌倒情况:</label>
    <input type="number" id="fall" name="fall" required>
    <!-- 走失情况 -->
    <label for="gettingLost">走失情况:</label>
    <input type="number" id="gettingLost" name="gettingLost" required>
    <!-- 噎食情况 -->
    <label for="choking">噎食情况:</label>
    <input type="number" id="choking" name="choking" required>
    <!-- 自杀情况 -->
    <label for="suicide">自杀情况:</label>
    <input type="number" id="suicide" name="suicide" required>
    <!-- 其他信息 -->
    <label for="otherInfo">其他信息:</label>
    <input type="text" id="otherInfo" name="otherInfo" required>
    <!-- 信息提供者姓名 -->
    <label for="informantName">信息提供者姓名:</label>
    <input type="text" id="informantName" name="informantName" required>
    <!-- 信息提供者与老人关系 -->
    <label for="relationship">信息提供者与老人关系:</label>
    <input type="text" id="relationship" name="relationship" required>
    <!-- 联系人姓名 -->
    <label for="contactName">联系人姓名:</label>
    <input type="text" id="contactName" name="contactName" required>
    <!-- 联系人电话 -->
    <label for="contactPhone">联系人电话:</label>
    <input type="text" id="contactPhone" name="contactPhone" required>
    <input type="submit" value="提交">
</form>
<div id="message"></div>
</body>
</html>

servlet:

点击查看代码
package com.vivy.web;
import com.vivy.pojo.Base;
import com.vivy.service.BaseService;

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.*;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/addBaseServlet")
public class addBaseServlet extends HttpServlet {
    private BaseService service = new BaseService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置请求和响应的字符编码为 UTF-8,防止中文乱码
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        // 创建 Base 对象
        Base base = new Base();
        // 从请求中获取表单数据并设置到 Base 对象中
        String id = generateID();
        base.setAssessmentId(id);
        base.setAssessmentDate(request.getParameter("assessmentDate"));
        base.setAssessmentReason(Integer.valueOf(request.getParameter("assessmentReason")));
        base.setName(request.getParameter("name"));
        base.setGender(request.getParameter("gender"));
        base.setBirthDate(request.getParameter("birthDate"));
        base.setIdCard(request.getParameter("idCard"));
        base.setSocialCard(request.getParameter("socialCard"));
        base.setEthnicity(request.getParameter("ethnicity"));
        base.setEducationLevel(Integer.valueOf(request.getParameter("educationLevel")));
        base.setReligious(Integer.valueOf(request.getParameter("religious")));
        base.setMaritalStatus(Integer.valueOf(request.getParameter("maritalStatus")));
        base.setLivingCondition(Integer.valueOf(request.getParameter("livingCondition")));
        base.setMedicalPayment(Integer.valueOf(request.getParameter("medicalPayment")));
        base.setEconomicSource(Integer.valueOf(request.getParameter("economicSource")));
        base.setDementia(Integer.valueOf(request.getParameter("dementia")));
        base.setMentalIllness(Integer.valueOf(request.getParameter("mentalIllness")));
        base.setChronicDiseases(request.getParameter("chronicDiseases"));
        base.setFall(Integer.valueOf(request.getParameter("fall")));
        base.setGettingLost(Integer.valueOf(request.getParameter("gettingLost")));
        base.setChoking(Integer.valueOf(request.getParameter("choking")));
        base.setSuicide(Integer.valueOf(request.getParameter("suicide")));
        base.setOtherInfo(request.getParameter("otherInfo"));
        base.setInformantName(request.getParameter("informantName"));
        base.setRelationship(request.getParameter("relationship"));
        base.setContactName(request.getParameter("contactName"));
        base.setContactPhone(request.getParameter("contactPhone"));

        service.add(base);

        request.getRequestDispatcher("/selectAllServlet").forward(request,response);

    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // POST 请求调用 doGet 方法处理
        this.doGet(request, response);
    }

    private int sequenceNumber = 1;

    public synchronized String generateID() {
        // 获取当前日期
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String dateStr = sdf.format(now);

        // 读取或初始化sequenceNumber
        if (sequenceNumber == 1) {
            File file = new File("sequenceNumber.txt");
            if (file.exists()) {
                try {
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    String line = reader.readLine();
                    sequenceNumber = Integer.parseInt(line);
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        // 组合房产编号
        String sequenceStr = String.format("%04d", sequenceNumber++);
        String ID = dateStr + sequenceStr;

        // 更新sequenceNumber到文件
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("sequenceNumber.txt"));
            writer.write(String.valueOf(sequenceNumber));
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return ID;
    }
}

service:

点击查看代码
package com.vivy.service;

import com.vivy.mapper.BaseMapper;
import com.vivy.pojo.Base;
import com.vivy.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class BaseService {

    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

    public void add(Base base){

        SqlSession sqlSession = sqlSessionFactory.openSession();
        BaseMapper baseMapper = sqlSession.getMapper(BaseMapper.class);

        baseMapper.add(base);

        sqlSession.commit();
        sqlSession.close();
    }

pojo:
点击查看代码
package com.vivy.pojo;

public class Base {
    private String assessmentId;
    private String assessmentDate;
    private Integer assessmentReason;
    private String name;
    private String gender;
    private String birthDate;
    private String idCard;
    private String socialCard;
    private String ethnicity;
    private Integer educationLevel;
    private Integer religious;
    private Integer maritalStatus;
    private Integer livingCondition;
    private Integer medicalPayment;
    private Integer economicSource;
    private Integer dementia;
    private Integer mentalIllness;
    private String chronicDiseases;
    private Integer fall;
    private Integer gettingLost;
    private Integer choking;
    private Integer suicide;
    private String otherInfo;
    private String informantName;
    private String relationship;
    private String contactName;
    private String contactPhone;

    // Getters 和 Setters 方法
    public String getAssessmentId() {
        return assessmentId;
    }

    public void setAssessmentId(String assessmentId) {
        this.assessmentId = assessmentId;
    }

    public String getAssessmentDate() {
        return assessmentDate;
    }

    public void setAssessmentDate(String assessmentDate) {
        this.assessmentDate = assessmentDate;
    }

    public Integer getAssessmentReason() {
        return assessmentReason;
    }

    public void setAssessmentReason(Integer assessmentReason) {
        this.assessmentReason = assessmentReason;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(String birthDate) {
        this.birthDate = birthDate;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getSocialCard() {
        return socialCard;
    }

    public void setSocialCard(String socialCard) {
        this.socialCard = socialCard;
    }

    public String getEthnicity() {
        return ethnicity;
    }

    public void setEthnicity(String ethnicity) {
        this.ethnicity = ethnicity;
    }

    public Integer getEducationLevel() {
        return educationLevel;
    }

    public void setEducationLevel(Integer educationLevel) {
        this.educationLevel = educationLevel;
    }

    public Integer getReligious() {
        return religious;
    }

    public void setReligious(Integer religious) {
        this.religious = religious;
    }

    public Integer getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(Integer maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public Integer getLivingCondition() {
        return livingCondition;
    }

    public void setLivingCondition(Integer livingCondition) {
        this.livingCondition = livingCondition;
    }

    public Integer getMedicalPayment() {
        return medicalPayment;
    }

    public void setMedicalPayment(Integer medicalPayment) {
        this.medicalPayment = medicalPayment;
    }

    public Integer getEconomicSource() {
        return economicSource;
    }

    public void setEconomicSource(Integer economicSource) {
        this.economicSource = economicSource;
    }

    public Integer getDementia() {
        return dementia;
    }

    public void setDementia(Integer dementia) {
        this.dementia = dementia;
    }

    public Integer getMentalIllness() {
        return mentalIllness;
    }

    public void setMentalIllness(Integer mentalIllness) {
        this.mentalIllness = mentalIllness;
    }

    public String getChronicDiseases() {
        return chronicDiseases;
    }

    public void setChronicDiseases(String chronicDiseases) {
        this.chronicDiseases = chronicDiseases;
    }

    public Integer getFall() {
        return fall;
    }

    public void setFall(Integer fall) {
        this.fall = fall;
    }

    public Integer getGettingLost() {
        return gettingLost;
    }

    public void setGettingLost(Integer gettingLost) {
        this.gettingLost = gettingLost;
    }

    public Integer getChoking() {
        return choking;
    }

    public void setChoking(Integer choking) {
        this.choking = choking;
    }

    public Integer getSuicide() {
        return suicide;
    }

    public void setSuicide(Integer suicide) {
        this.suicide = suicide;
    }

    public String getOtherInfo() {
        return otherInfo;
    }

    public void setOtherInfo(String otherInfo) {
        this.otherInfo = otherInfo;
    }

    public String getInformantName() {
        return informantName;
    }

    public void setInformantName(String informantName) {
        this.informantName = informantName;
    }

    public String getRelationship() {
        return relationship;
    }

    public void setRelationship(String relationship) {
        this.relationship = relationship;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    @Override
    public String toString() {
        return "TbBase{" +
                "assessmentId='" + assessmentId + '\'' +
                ", assessmentDate='" + assessmentDate + '\'' +
                ", assessmentReason=" + assessmentReason +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", birthDate='" + birthDate + '\'' +
                ", idCard='" + idCard + '\'' +
                ", socialCard='" + socialCard + '\'' +
                ", ethnicity='" + ethnicity + '\'' +
                ", educationLevel=" + educationLevel +
                ", religious=" + religious +
                ", maritalStatus=" + maritalStatus +
                ", livingCondition=" + livingCondition +
                ", medicalPayment=" + medicalPayment +
                ", economicSource=" + economicSource +
                ", dementia=" + dementia +
                ", mentalIllness=" + mentalIllness +
                ", chronicCiseases='" + chronicDiseases + '\'' +
                ", fall=" + fall +
                ", gettingLost=" + gettingLost +
                ", choking=" + choking +
                ", suicide=" + suicide +
                ", otherInfo='" + otherInfo + '\'' +
                ", informantName='" + informantName + '\'' +
                ", relationship='" + relationship + '\'' +
                ", contactName='" + contactName + '\'' +
                ", contactPhone='" + contactPhone + '\'' +
                '}';
    }

}

Mapper:

点击查看代码
package com.vivy.mapper;

import com.vivy.pojo.Base;
import java.util.List;

public interface BaseMapper {

    void add(Base base);
}

mapper.xml:

点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--接口全路径名-->
<mapper namespace="com.vivy.mapper.BaseMapper">

    <insert id="add" parameterType="com.vivy.pojo.Base">
        INSERT INTO tb_base (
            assessmentId, assessmentDate, assessmentReason, name, gender, birthDate,
            idCard, socialCard, ethnicity, educationLevel, religious, maritalStatus,
            livingCondition, medicalPayment, economicSource, dementia, mentalIllness,
            chronicDiseases, fall, gettingLost, choking, suicide, otherInfo,
            informantName, relationship, contactName, contactPhone
        ) VALUES (
            #{assessmentId}, #{assessmentDate}, #{assessmentReason}, #{name}, #{gender}, #{birthDate},
            #{idCard}, #{socialCard}, #{ethnicity}, #{educationLevel}, #{religious}, #{maritalStatus},
            #{livingCondition}, #{medicalPayment}, #{economicSource}, #{dementia}, #{mentalIllness},
            #{chronicDiseases}, #{fall}, #{gettingLost}, #{choking}, #{suicide}, #{otherInfo},
            #{informantName}, #{relationship}, #{contactName}, #{contactPhone}
        )
    </insert>

</mapper>

util:

点击查看代码
package com.vivy.util;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class SqlSessionFactoryUtils {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        //静态代码块会随着类的加载自动执行,且只执行一次

        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public static SqlSessionFactory getSqlSessionFactory(){
        return sqlSessionFactory;
    }
}

posted @ 2025-02-16 16:42  vivi_vimi  阅读(11)  评论(0)    收藏  举报