代码6

对身体各项成绩的增删改查

package cn.edu.tyut.demo13;

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.sql.*;

@WebServlet("/demo9/departmentupdateservlet")
public class departmentupdateservlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String departmentId = request.getParameter("departmentid");
    String newDepartmentName = request.getParameter("department");

    // 检查部门名称格式(这里简单示例,实际可能需要更复杂的正则表达式)
    if (!isValidDepartmentName(newDepartmentName)) {
        request.setAttribute("error", "部门名称格式不正确");
        request.getRequestDispatcher("departmentupdate.jsp").forward(request, response);
        return;
    }

    // 检查部门名称是否与现有名称冲突
    try {
        if (isDepartmentNameExists(newDepartmentName)) {
            request.setAttribute("error", "部门名称已存在");
            request.getRequestDispatcher("departmentupdate.jsp").forward(request, response);
            return;
        }
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }

    // 如果验证通过,执行更新操作
    try {
        Connection con = getConnection();
        String sql = "UPDATE department SET name=? WHERE id=?";
        PreparedStatement pst = con.prepareStatement(sql);
        pst.setString(1, newDepartmentName);
        pst.setString(2, departmentId);
        pst.executeUpdate();
        pst.close();
        con.close();
        // 重定向或转发到成功页面
        response.sendRedirect("guanliyuan.jsp");
    } catch (SQLException e) {
        e.printStackTrace();
        request.setAttribute("error", "更新失败");
        request.getRequestDispatcher("departmentupdate.jsp").forward(request, response);
    }
}

private boolean isValidDepartmentName(String departmentName) {
    // 这里简单示例,实际可能需要更复杂的正则表达式
    return departmentName.matches("[a-zA-Z0-9_ ]+");
}

private boolean isDepartmentNameExists(String departmentName) throws SQLException {
    Connection con = getConnection();
    String sql = "SELECT * FROM department WHERE name=?";
    PreparedStatement pst = con.prepareStatement(sql);
    pst.setString(1, departmentName);
    ResultSet rs = pst.executeQuery();
    boolean exists = rs.next();
    rs.close();
    pst.close();
    con.close();
    return exists;
}

private Connection getConnection() throws SQLException {
    // 这里假设你有一个获取数据库连接的方法,需要根据实际情况修改
    return DriverManager.getConnection("jdbc:mysql://kaoqin@localhost/kaoqin", "username", "password");
}

}

posted @ 2025-01-24 21:08  林香芋  阅读(12)  评论(0)    收藏  举报