本章将实现用户后台管理的添加(已完成)、查询(已完成)、修改(已完成)、删除(已完成)功能。(由于前期处于测试阶段,未对数据进行限制,后期将进行完善)
系统开发平台
开发工具:eclipse
数据库:MySQL
操作系统:Windows 10
开发语言与技术:Java、HTML、CSS、JavaScript、
Servlet、JSP、Tomcat
任务陈述
做一个火车票售票系统。主要功能包含如下:
- 车次管理(车次、起止地点、到达时间、开车时间)
- 坐席管理(车次、车厢号、座位号)
- 售票(直达、换乘等)、改签、退票
- 余票查询
- 订单查询
- 用户管理
- 异常处理
创建数据库(trainbookingsystem)、用户表(user)
- 用户表结构
属性 | 类型 | 是否为空 | 描述 |
---|---|---|---|
USER_PHONE | varchar(11) | not null | 手机号码作为主码 |
USER_PASSWORD | varchar(20) | not null | 用户密码 |
USER_NAME | varchar(10) | not null | 用户姓名 |
USER_SEX | varchar(1) | not null | 用户性别 |
USER_EMAIL | varchar(20) | not null | 用户邮箱 |
USER_ADDRESS | varchar(50) | not null | 用户地址 |
USER_ID | varchar(20) | not null | 用户身份证 |
USER_STATUS | decimal(6,0) | not null | 用户状态(1:学生,2:成人,3:管理员) |
创建JSP文件
- 创建Dynamic Web Project
- 在WebContent下创建manage文件夹
- 创建admin_user.jsp,admin_useradd.jsp,admin_index.jsp以及admin_menu.jsp(每个jsp文件中的菜单都是一样的,单独创建一个菜单JSP减少代码复用)
- 结构如下
- admin_useradd.jsp效果如下
- admin_menu.jsp效果如下
创建用户实体类
-
在Java Resources/src下创建com.trainbooking.entity包
-
在包中创建TRAINBOOKING_USER.java用户实体类
-
结构如下
-
用户实体类部分代码如下,每一个变量的名称都需要之前创建的用户表中的属性名一样,构造方法在给出的代码中有显示,此外,实现所有的get和set方法。
加载驱动
-
在Java Resources/src下创建com.trainbooking.dao包
-
在包中创建Basedao.java加载驱动类
-
结构如下
-
部分代码如下
实现用户添加服务
- 在Java Resources/src下创建com.trainbooking.service包
- 在com.trainbooking.service包中创建TRAINBOOKING_USERDao.java用户服务类
- 服务包括:用户添加(insert)、删除(del)、更新(update)、查询所有(可通过搜索手机号码)(selectAll)、获取总记录数和页数(将查询出来的数据表进行分页处理)(totalPage)以及selectByPhone(该服务在进行修改操作时用到)
- 由于需要一步一步实现,因此先实现添加(insert)服务
- 此处插入数据需要与数据库属性的顺序一致
创建用户添加servlet
- 在Java Resources/src下创建com.trainbooking.servlet.user包
- 在com.trainbooking.servlet.user包下创建DoUserAdd.java(使用Post将用户添加请求内容存到数据库中)servlet
- 结构如下
- 部分代码如下,由于处在初步阶段,现只进行新增状态码为2的成人用户,后续再作改进、完善。
用户后台管理用户添加功能实现效果
- 在此,已经完成了用户添加功能
- 现有数据库数据如下
- 通过用户添加页面,将数据存入数据库中,页面如下
- 执行完成后,数据库中的数据得到更新如下(此处不是手动添加数据!!!是前端通过servlet对数据库进行更新的!!!)
实现用户查询服务
- 在service层中实现查询方法
- 部分代码如下,其中获取总记录数和总页数的方法是为了更好的对表进行分页
创建用户查询servlet
- 在com.trainbooking.servlet.user包下创建DoUserSelect.java的servlet(使用doGet()将用户查询请求转发至admin_user.jsp页面中)
- 结构如下
- 部分代码如下
用户后台管理用户查询功能实现效果
- 在此,已经完成了用户查询功能
- 现有数据库信息以及未输入手机号码搜索的前端页面如下
- 输入手机号码查询时效果如下
实现用户修改服务
-
在service层中实现修改方法
-
admin_modify.jsp的部分代码如下
-
效果如下
-
service层的修改代码如下
-
此处service中的通过电话号码查询是为了跳转到修改页面时,保留该用户的原信息到修改页面(通过后面的ToUserUpdate servlet实现)
创建用户修改servlet
- 在com.trainbooking.servlet.user包下创建ToUserUpdate.java(使用doGet()将用户修改请求转发到admin_usermodify.jsp)以及DoUserUpdate.java(使用doPost()将用户修改请求的内容存到数据库)servlet
- 代码如下
用户后台管理用户修改功能实现效果
- 在此,已经完成了用户修改功能
- 比如要修改姓名为admin4这个用户的内容,点击右侧修改进入如下界面(由于servlet中的doGet方法中有查询该用户实体的所有信息,因此请求转发到admin_usermodify.jsp中保留着该用户的原信息)
- 此处,比如我们将性别修改成女,并点提交,我们可以看到表中姓名为admin4的性别变成了女
实现用户删除服务
-
在service层中实现删除方法
-
admin_user.jsp的部分代码如下(分批量删除、单个删除)
-
避免用户误删,在误触删除键的情况下增加确定删除弹框二次确认
-
以下为JavaScript代码,分别为单个删除确认,全选当前页,批量删除确认
-
效果如下
-
在service层的删除方法最为简单
代码如下
创建用户删除servlet
-
在com.trainbooking.servlet.user包下创建DoUserDel.java的servlet
结构如下
-
部分代码如下,处理get请求完成单个删除操作,处理post请求完成批量删除操作
用户后台管理用户删除功能实现效果
- 比如我们需要删除电话号码为115的用户,点击右侧删除键,会出现确认删除提示
- 确定后用户删除成功,且跳回当前页
- 完成批量删除前,需要勾选前面的小方框,后点击批量删除,会出现确认删除提示
- 点击确定,完成删除
后台管理之用户管理总结
开发步骤:①创建数据库 ②创建用户表 ③ 创建JSP文件 ④ 实现dao层 ⑤实现service层 ⑥ 实现controller层 ⑦调试测试
到此为止,火车票售票系统的七个功能之一已经完成了,其他六个功能几乎都是按照这个流程来走,之后的功能实现就是进行和这个功能类似的重复操作!
首先完成用户管理功能,是为了方便进行系统的注册和登录功能,毕竟只有用户登录成功后才能使用我们的系统功能不是吗?
因此由于已经完成了用户管理,接下来将完成系统的登录和注册!!!
将在第二篇博客中详述,《Java Web之从零开始开发火车票售票系统(二)》 https://blog.csdn.net/long99920/article/details/119415309?utm_source=app&app_version=4.12.0
源码自取地址:https://download.csdn.net/download/long99920/85585971