0


【JAVA项目实战】【图书管理系统】用户删除功能【Servlet】+【JQuery】+【Mysql】

🚀个人主页:欢迎访问Ali.s的首页

⏰ 最近更新:2022年7月31日

⛽ Java框架学习系列:【Spring】【SpringMVC】【Mybatis】

🔥 Java项目实战系列:【飞机大战】【图书管理系统】

⛳ Java基础学习系列:【继承】【封装】【多态】

🏆 通信仿真学习系列:【硬件】【通信】【MATLAB】

🍄 个人简介:通信工程本硕🌈、Java程序员🚴。目前只会CURD😂

💌 点赞 👍 收藏 💗留言 💬 都是我最大的动力💯

在这里插入图片描述

文章目录


前言

这里是

【JAVASE】

项目实战的第三节课,接着前面的用户新增功能继续做,今天做的是用户的删除功能,使用

【servlet】

【JQuery】

【Mysql】

来实现该功能。


一、需求分析

在前面用用户新增功能实现后,可以清楚的看到插入的用户信息,并且能够在前端页面渲染出数据效果,但是在实际的测试过程中出现了中文乱码问题,今天将完善一下中文乱码问题,并且完成用户删除功能。
在这里插入图片描述
下面对增加的功能进行需求分析。
在这里插入图片描述
当点击每条数据的删除按钮时,就是用户发送了请求,这里由于在

UserServlet

中都是

POST

请求,所以后面在点击按钮触发事件时,应将

action

method

设置为

post

方式。用户发送请求后

controller

层的

Servlet

就应该要处理请求,而根据

MVC

架构,

controller

需要调用

service

层的方法,所以将业务逻辑交给

Service

层进行处理,

service

的处理有需要对请求处理的数据与

dao

层的数据进行比对,

dao

层访问数据库信息,对请求数据操作进行校验,并对操作返回数据响应。

二、功能实现

dao

层和

service

层中创建接口。这里与新增用户的功能类似,所以前面的功能实现后,这里就相对比较简单。

1.反射机制

这里使用反射机制来统一拿到

Use

r对象的表单信息,避免每次的增删改查都需要去获取

Use

r对象。

private<T>TgetRequestParameterForReflect(HttpServletRequest req,Class<T> cla)throwsInstantiationException,IllegalAccessException{T t=cla.newInstance();//使用反射机制获取表单信息Map<String,String[]> parameterMap = req.getParameterMap();Field[] fields = cla.getDeclaredFields();//对信息判空处理if(fields!=null&& fields.length>0){for(Field field : fields){String[] values = parameterMap.get(field.getName());if(values==null|| values.length==0){continue;}//判断是否是数组类型if(field.getType()==String[].class){//开启访问权限
                    field.setAccessible(true);try{
                        field.set(t,values);}catch(IllegalAccessException e){
                        e.printStackTrace();}//关闭访问权限
                    field.setAccessible(false);continue;}//不是数组类型
                field.setAccessible(true);try{
                    field.set(t,values[0]);}catch(IllegalAccessException e){
                    e.printStackTrace();}//关闭访问权限
                field.setAccessible(false);continue;}}return t;}

2.控制层

为了避免代码重复,将处理的方法抽象出来,便于调用函数,使代码更加简洁。下面删除用户的方法。

privatevoiddeleteUser(HttpServletRequest req,HttpServletResponse resp)throwsIOException{//获取需要删除的用户的编号String id = req.getParameter("id");//通过service来进行操作Integer count = userService.deleteUser(Integer.parseInt(id));//对判断条数if(count>0){//进行重定向跳转
            resp.sendRedirect("/userServlet");}else{//删除失败System.out.println("删除失败……");}}

3.业务层

在接口中调用添加用户的方法,注意返回值为

Integer

,表示影响返回参数

id

的用户信息收到影响。

@OverridepublicIntegerdeleteUser(Integer id){return userDao.delete(id);}

在实现类实现所调用的接口就能完成业务层的处理。

packagecom.song.bookmanagersystem.service;importcom.song.bookmanagersystem.entity.User;importjava.util.List;publicinterfaceUserService{//业务层删除用户IntegerdeleteUser(Integer id);}

4.持久层

dao

层要完成信息的查库操作,与数据库的信息进行比对,并返回响应的结果,这是删除的操作,所以返回响应的结果是否删除成功,并且要将数据作为返回值进行传递。

@OverridepublicIntegerdelete(Integer id){QueryRunner queryRunner =DBUtils.getQueryRunner();String sql="delete from t_user where id= ?";try{return queryRunner.update(sql,id);}catch(SQLException e){
            e.printStackTrace();}return-1;}

5.乱码问题

在新增用户信息时,当输入的字段信息为中文时,在前端页面和数据库中都有可能出现乱码问题。
在这里插入图片描述
针对乱码问题,我们选择在用户发送请求时,将用户输入的信息做字符集编码格式的处理,这样后面的每一步都将可以正常的操作和显示,从源头上解决乱码问题,所以在POST请求时,就设置字符编码格式

req.setCharacterEncoding("UTF-8")

protectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置post请求中解码的方式
        req.setCharacterEncoding("UTF-8");
       String type=req.getParameter(Constant.SERVLET_TYPE_SQLTYPE);if(type!=null&&!"".equals(type)){//对请求进行判断,针对不同的请求进行不同的处理if(Constant.SERVLET_TYPE_SAVE.equals(type)){//进行添加操作try{saveUser(req, resp);}catch(Exception e){
                   e.printStackTrace();}}elseif(Constant.SERVLET_TYPE_UPDATE.equals(type)){//进行更新操作}elseif(Constant.SERVLET_TYPE_DELETE.equals(type)){//进行删除操作deleteUser(req,resp);}elseif(Constant.SERVLET_TYPE_QUERY.equals(type)){//进行查询操作queryUser(req, resp);}}else{queryUser(req,resp);}}

三、功能测试

启动服务器,让项目在服务器中运行,实现在新增的功能下测试中文的输入是否还存在乱码问题,然后在网页上进行删除用户数据的测试。
在这里插入图片描述
页面已经可以正常显示中文字段信息,说明中文乱码问题已经解决,下面测试删除信息的功能。
在这里插入图片描述
点击删除按钮后,页面再次跳转回用户信息页面,并且刚刚删除的数据信息已经不存在,在数据库中也不存在该用户信息,说明用户删功能已经完成。
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

总结

以上就是今天要讲的内容,使用

【Servlet】
  • 【JQuery】
    
  • 【Mysql】
    
    对用户删除功能进行实现,发现能成功删除数据库中的用户信息,并且能够数据返回到前端页面进行渲染,重新返回到用户信息页面,同时解决了中文乱码问题,设置字符编码格式是防止乱码的有效方法。
标签: java servlet jquery

本文转载自: https://blog.csdn.net/dxcn01/article/details/126087544
版权归原作者 Ali.s 所有, 如有侵权,请联系我们删除。

“【JAVA项目实战】【图书管理系统】用户删除功能【Servlet】+【JQuery】+【Mysql】”的评论:

还没有评论