代码7

package cn.edu.tyut.demo13;

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.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

@WebServlet("/RoleManagementServlet")
public class rolemanagementservlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

    String jobidStr = request.getParameter("jobid");
    String department = request.getParameter("department");
    String role = request.getParameter("role");

    if (jobidStr == null || department == null || role == null) {
        out.println("<html><body><p>参数缺失,请重新操作。</p><a href='rolemanagement.jsp'>返回</a></body></html>");
        return;
    }

    int jobid = Integer.parseInt(jobidStr);

    try (Connection connection = Database.getConnection()) {
        if ("部门经理".equals(role)) {
            // 检查该部门是否已存在经理
            String checkSql = "SELECT COUNT(*) FROM zhiyuan WHERE department =? AND role = '部门经理'";
            try (PreparedStatement checkStmt = connection.prepareStatement(checkSql)) {
                checkStmt.setString(1, department);
                try (ResultSet rs = checkStmt.executeQuery()) {
                    if (rs.next() && rs.getInt(1) > 0) {
                        out.println("<html><body><p>该部门已存在经理,不能再指定。</p><a href='rolemanagement.jsp'>返回</a></body></html>");
                        return;
                    }
                }
            }
        }

        // 更新员工角色
        String updateSql = "UPDATE zhiyuan SET role =? WHERE jobid =?";
        try (PreparedStatement updateStmt = connection.prepareStatement(updateSql)) {
            updateStmt.setString(1, role);
            updateStmt.setInt(2, jobid);
            int rowsAffected = updateStmt.executeUpdate();
            if (rowsAffected > 0) {
                out.println("<html><body><p>角色设置成功。</p><a href='rolemanagement.jsp'>返回</a></body></html>");
            } else {
                out.println("<html><body><p>角色设置失败,未找到对应的员工。</p><a href='rolemanagement.jsp'>返回</a></body></html>");
            }
        }
    } catch (SQLException | ClassNotFoundException e) {
        e.printStackTrace();
        out.println("<html><body><p>数据库操作错误: " + e.getMessage() + "</p><a href='rolemanagement.jsp'>返回</a></body></html>");
    }
}

}

posted @ 2025-02-08 23:20  林香芋  阅读(15)  评论(0)    收藏  举报