??个人主页:欢迎访问的首页
最近更新:2022年7月27日
Java框架学习系列:【Spring】【SpringMVC】【Mybatis】
?? Java项目实战系列:【飞机大战】【图书管理系统】
Java基础学习系列:【继承】【封装】【多态】
?? 通信仿真学习系列:【硬件】【通信】【MATLAB】
?? 个人简介:通信工程本硕??、Java程序员??。目前只会CURD??
?? 点赞 ?? 收藏 ??留言 ?? 都是我最大的动力??
这里是【JAVASE】
项目实战的第二节课,接着前天的用户信息查询功能继续做,今天做的是用户的添加功能,使用【servlet】
、【Jsp】
、【Mysql】
来实现该功能。
在前面用户信息的查询功能实现后,在用户信息页面有【增删改】
的按钮。
实现用户信息的增加、修改、删除的操作。下面对增加的功能进行需求分析。
当点击添加按钮,就是用户发送了请求,这里由于在UserServlet
中都是POST
请求,所以后面在点击按钮触发事件时,应将action
的method
设置为post
方式。用户发送请求后controller
层的Servlet
就应该要处理请求,而根据MVC
架构,controller
需要调用service
层的方法,所以将业务逻辑交给Service
层进行处理,service
的处理有需要对请求处理的数据与dao
层的数据进行比对,dao
层访问数据库信息,对请求数据操作进行校验,并对操作返回数据响应。
在dao
层和service
层中创建接口以及工具constant
类。constant
类为了处理项目中需要的常量,防止所使用的量被修改后使用,方便统一管理常量信息。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String type=req.getParameter(Constant.SERVLET_TYPE_SQLTYPE);
if (type!=null && !"".equals(type)){
//对请求进行判断,针对不同的请求进行不同的处理
if(Constant.SERVLET_TYPE_SAVE.equals(type)){
//进行添加操作
saveUser(req, resp);
}else if (Constant.SERVLET_TYPE_UPDATE.equals(type)){
//进行更新操作
}else if (Constant.SERVLET_TYPE_DELETE.equals(type)){
//进行删除操作
}else if(Constant.SERVLET_TYPE_QUERY.equals(type)){
//进行查询操作
queryUser(req, resp);
}
}else{
/**
* 上面对非空进行判断,如果为空,也要进行数据库信息比对,
* 所以也是进行查询操作
*/
queryUser(req,resp);
}
}
为了避免代码重复,将处理的方法抽象出来,便于调用函数,使代码更加简洁。下面是提交表单和查询用户信息的方法。
private void saveUser(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//获取表单提交信息
User user=new User();
user.setUserName(req.getParameter("userName"));
user.setPassword(req.getParameter("password"));
user.setPhoneNum(req.getParameter("phoneNum"));
user.setEmail(req.getParameter("email"));
//记录影响行数
Integer count= userService.addUser(user);
//是否成功,进行事务的处理
if (count>0){
//重定向查询
resp.sendRedirect("/userServlet");
}else{
//失败就跳转失败页面
System.out.println("插入失败……");
}
}
//查询用户信息
private void queryUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//通过service进行信息查询
List list=userService.getUser(null);
//进行绑定
req.setAttribute("list",list);
//跳转请求
req.getRequestDispatcher("/user/user.jsp").forward(req, resp);
}
在接口中调用添加用户的方法,注意返回值为Integer
,表示影响的数据库的数据条数。
package com.song.bookmanagersystem.service;
import com.song.bookmanagersystem.entity.User;
import java.util.List;
public interface UserService {
List getUser(User user);
//业务层添加用户
Integer addUser(User user);
}
在实现类实现所调用的接口就能完成业务层的处理。
package com.song.bookmanagersystem.service;
import com.song.bookmanagersystem.entity.User;
import java.util.List;
public interface UserService {
List getUser(User user);
//业务层添加用户
Integer addUser(User user);
}
在dao层要完成信息的查库操作,与数据库的信息进行比对,并返回响应的结果,这是添加的操作,所以返回响应的结果是是否插入成功,以添加成功的条数来作为结果返回。
@Override
public Integer save(User user) {
QueryRunner queryRunner = DBUtils.getQueryRunner();
//创建sql语句
String sql="insert into t_user(user_name, password, phone_num, email, is_deleted, salt) VALUES (?,?,?,?,?,?)";
try {
return queryRunner.update(sql,user.getUserName()
,user.getPassword(),user.getPhoneNum(),user.getEmail()
,user.getIsDeleted(),user.getSalt()
);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;//插入失败,
}
这里统一管理需要使用的常量,防止被修改和调用,做到统一处理,统一调用的目的。
package com.song.bookmanagersystem.utils;
public class Constant {
public static final String SERVLET_TYPE_SAVE="save";
public static final String SERVLET_TYPE_UPDATE="update";
public static final String SERVLET_TYPE_DELETE="delete";
public static final String SERVLET_TYPE_QUERY="query";
public static final String SERVLET_TYPE_SQLTYPE="sqltype";
}
通过action
事件触发,设置和
submit
按钮进行数据的提交。
基本信息
启动服务器,让项目在服务器中运行,然后在网页进行添加用户数据信息,在用户信息页面点击添加按钮,
页面进行跳转到田间表单页面,输入想设置的信息后点击确认添加按钮
添加完毕后,页面再次跳转回用户信息页面,并且显示刚刚添加的数据信息。
因为使用了静态模板,所以数据查询比较清楚,展现形式比较好。发现能成功添加到数据库中的用户信息,并且能够将查询到的数据返回到前端页面进行渲染,重新跳转到在用户信息页面进行显示。
以上就是今天要讲的内容,使用【Servlet】
+【Jsp】
+【Mysql】
对用户添加功能进行了处理,发现能成功添加到数据库中的用户信息,并且能够将添加到的数据返回到前端页面进行渲染,将新添加的用户信息返回到前端页面进行显示,能够很好的完成功能需求。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦