首页 > 其他分享 >今天写极限测试写了好久,随便交一个servlet类

今天写极限测试写了好久,随便交一个servlet类

时间:2023-11-21 23:12:05浏览次数:29  
标签:preparedStatement String resultSet 好久 极限 connection import null servlet

package com.example.limittest01;

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

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

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        // 获取表单提交的数据
        String jobID = request.getParameter("jobID");
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        String birthday = request.getParameter("birthday");
        String department = request.getParameter("department");
        String role = request.getParameter("role");

        Connection connection = null;
        PreparedStatement preparedStatement = null;

        // 验证工号是否唯一
        if (!isJobIDUnique(jobID)) {
            out.println("工号已存在,添加失败");
            return;
        }

        // 如果选择的身份是经理,检查部门中是否已经有经理
        if ("manager".equals(role) && isDepartmentManagerExists(department)) {
            out.println("所选部门已有经理,不允许添加新的经理");
            return;
        }

        try {
            // 获取数据库连接
            connection = DatabaseConnection.getConnection();

            // 执行插入数据的 SQL 语句
            String sql = "INSERT INTO employee (JobID, Name, Sex, Birthday, Department, Role) VALUES (?, ?, ?, ?, ?, ?)";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, jobID);
            preparedStatement.setString(2, name);
            preparedStatement.setString(3, sex);
            preparedStatement.setString(4, birthday);
            preparedStatement.setString(5, department);
            preparedStatement.setString(6, role);

            // 执行 SQL 语句
            int rowsAffected = preparedStatement.executeUpdate();

            if (rowsAffected > 0) {
                // 插入成功
                response.getWriter().print("插入成功");
            } else {
                // 插入失败
                response.getWriter().print("插入失败");
            }
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
            // 异常处理,这里可以根据具体情况返回不同的信息
            response.getWriter().print("插入失败,发生异常");
        } finally {
            // 关闭连接和 statement
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        // 插入成功
        out.println("添加成功");
    }

    // 验证工号是否唯一
    private boolean isJobIDUnique(String jobID) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            // 获取数据库连接
            connection = DatabaseConnection.getConnection();

            // 执行查询的 SQL 语句
            String sql = "SELECT COUNT(*) FROM employee WHERE JobID = ?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, jobID);

            // 执行查询
            resultSet = preparedStatement.executeQuery();

            // 获取查询结果
            if (resultSet.next()) {
                int count = resultSet.getInt(1);
                // 如果 count 大于 0,说明存在相同的工号,返回 false
                return count == 0;
            }
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
            // 异常处理,这里可以根据具体情况返回 false
            return false;
        } finally {
            // 关闭连接、statement 和 resultSet
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        // 默认返回 true
        return true;
    }


    // 检查部门中是否已经有经理
    private boolean isDepartmentManagerExists(String department) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            // 获取数据库连接
            connection = DatabaseConnection.getConnection();

            // 执行查询的 SQL 语句
            String sql = "SELECT COUNT(*) FROM employee WHERE Department = ? AND Role = 'manager'";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, department);

            // 执行查询
            resultSet = preparedStatement.executeQuery();

            // 获取查询结果
            if (resultSet.next()) {
                int count = resultSet.getInt(1);
                // 如果 count 大于 0,说明该部门中已经有经理,返回 true
                return count > 0;
            }
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
            // 异常处理,这里可以根据具体情况返回 false
            return false;
        } finally {
            // 关闭连接、statement 和 resultSet
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        // 默认返回 false
        return false;
    }

}

 

标签:preparedStatement,String,resultSet,好久,极限,connection,import,null,servlet
From: https://www.cnblogs.com/muzhaodi/p/17847857.html

相关文章

  • JAVA SERVLET踩坑技术
    今天给大家分享一下踩坑记录。今天准备用Servlet重新开发一个web程序。开始是通过实现Servlet今天实现的。@WebServlet("/demo1")publicclassServletDemo1implementsServlet{publicvoidinit(ServletConfigservletConfig)throwsServletException{System.o......
  • 好久不见!新学习笔记-cc
    1.缩进tab代表4个字符2.if  elseif  elseif  elseif  ...  else3.在switch语句中如果输入出路要求以外的东西,可以加一个default(错误)printf()  swith(表达式){case(常量表达式)[——可以理解为scanf进去的东西]: printf();break;......
  • 使用Servlet中的过滤器实现登录权限验证
    {/***@description:登录过滤校验*@author:lijialuo*@date:2023/11/1913:28*@param:[servletRequest,servletResponse,filterChain]*@return:void**/@OverridepublicvoiddoFilter(ServletRequestservletReque......
  • JavaWeb--Servlet执行流程&生命周期
    Servlet的执行流程 Servlet生命周期 1、初始化使用了init()方法,只调用一次。2、提供服务使用service()方法(1)、调用时机:servlet被访问时,调用该方法(2)、调用次数:每一次servlet被访问就调用一次 3、服务中止时使用destory()方法,servlet对象被销毁调用时机:内存释放或者服务关闭的......
  • JavaWeb--Servlet
    Servlet专门用来开发动态web资源开发技术 导入servlet依赖坐标<dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><s......
  • Java中的HttpServletRequest
    Request:请求HttpServletRequest请求是获取请求行、请求头和请求体;可以通过这个方法设置防盗链,获取地址。牢记解决乱码的方式。怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此......
  • 不依赖于cn.hutool.extra.servlet.ServletUtil,使用Spring其他方式实现文件下载的功能
     在JDK17下,如下代码引用了cn.hutool.extra.servlet包下的ServletUtil工具类的ServletUtil.write方法,执行时报”Cannotresolvemethod'write(jakarta.servlet.http.HttpServletResponse,java.io.File)'“BUG,download方法通过cn.hutool.extra.servlet.ServletUtil的方法来实现......
  • SpringBoot复习:(57)ServletRequestListener
    packagecn.edu.tju.confiig;importorg.springframework.context.annotation.Configuration;importjavax.servlet.ServletRequestEvent;importjavax.servlet.ServletRequestListener;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServlet......
  • HttpServletRequest对象中获取客户端IP地址
    什么是HttpServletRequest对象HttpServletRequest对象是JavaServlet规范中定义的一种接口,它封装了客户端请求的所有信息,例如请求头、请求参数、请求方法、请求URL等。在JavaWeb开发中,HttpServletRequest对象非常常用,可以用来处理各种HTTP请求。获取客户端IP地址的需求在一些场景......
  • getContextPath、getServletPath、getRequestURI的区别
    假定你的webapplication名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、System.out.println(request.getContextPath());//可返回站点的根路径。也就是项目的名字 打印结果:/news   2......