代码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  林香芋  阅读(32)  评论(0)    收藏  举报