资源下载:
https://download.csdn.net/download/weixin_44893902/22035329
一、 语言和环境
-
实现语言:JAVA语言。
-
使用:MyEclipse/Eclipse + Tomcat + MySql。
-
使用技术:Jsp+Servlet+JavaBean 或SpringMVC + Spring + Mybatis。
二、 实现功能
随着信息化时代系统管理的普及,城市中各个每一个超市的会员管理也需要与时俱进,将超市的会员管理进行信息化登记和跟踪,开发一套BS结构的超市会员管理系统,主要功能如下:
- 首页默认显示所有已登记的会员信息,并且按“登记时间”降序排列,如图1所示。
(1)按登记时间降序排列。
(2)性别要求显示为“男”或“女”,不能为数据库表中的1和0显示。
(3)当鼠标移动到对应行时,需将对应行背景颜色高亮显示。
(4)底部左侧显示共XXX个会员。
(5)点击左侧的“搜索”按钮,通过姓名搜索,下方表格则显示对应搜索出来的会员信息。
(6)点击右侧“添加会员”则跳转到添加页面。
- 点击“添加会员”按钮,跳转至会员登记界面,如图2所示。
(1)姓名、出生日期不能为空。
(2)会员卡号后台按规则自动生成。
(3)会员性别在后台用1表示男,0表示女。
(4)会员等级默认为四级。
(5)会员积分默认为200分。
(6)会员登记时间为添加会员时间。
- 用户输入会员基本信息后,点击“添加会员”按钮,要求对表单进行非空验证,其中包括姓名、出生日期,都必须填入信息后才能提交,如图3所示。
- 输入完整信息提交以后,要求自动跳转至列表界面,此时列表界面显示新增的人员信息(按登记时间降序排列,应该在第一条),如图4所示。
- 用户点击“列表”界面中的删除超链接,弹出提示“您确认删除该人员登记信息?”点击确定后执行删除操作,然后列表进行自动刷新,如图5所示。
三、 数据库设计
-
创建数据库(member_db)。
-
创建数据表(tb_member_info),结构如下。
字段名
说明
字段类型
长度
备注
id
编号
int
主键,自增,增量为1
card_no
卡号
varchar
50
不能为空
name
姓名
varchar
50
不能为空
sex
性别
int
不能为空,1和0,1代表男,0代表女
birthday
出生日期
date
不能为空
grade
会员等级
varchar
20
不能为空
integral
会员积分
int
不能为空,默认200
Write_time
登记日期
datetime
登记日期,录入时自动获取当前时间
四、 具体要求及推荐实现步骤
1.JSP版本的实现步骤如下:
(1)按以上数据库要求建库、建表,并添加测试数据(不少于5条,测试数据不需要和上图一致)。
(2)创建Web工程并创建各个包,导入工程所需的jar文件。
(3)创建MemberInfo实体类。
(4)创建Servlet获取用户不同的请求,并将这些请求转发至业务处理层相应的业务方法。
(5)创建业务处理层,在其中定义业务方法,实现系统需求,在这些业务方法中需要执行DAO方法。
(6)创建BaseDAO工具类,使用JDBC完成数据表数据的查询、删除、添加的功能方法代码。
(7)编写JSP页面展示数据的查询结果。
2.SSM版本的实现步骤如下:
(1)创建数据库,创建数据表,添加测试数据(不少于5条,测试数据不需要和上图一致)。
(2)创建Web工程并创建各个包,导入工程所需的jar文件。
(3)添加相关SSM框架支持。
(4)配置项目所需要的各种配置文件(mybatis配置文件、spring配置文件、springMVC配置文件)。
(5)创建实体类。
(6)创建MyBatis操作数据库所需的Mapper接口及其Xml映射数据库操作语句文件。
(7)创建业务逻辑相应的接口及其实现类,实现相应的业务,并在类中加入对DAO/Mapper的引用和注入。
(8)创建Controller控制器类,在Controller中添加对业务逻辑类的引用和注入,并配置springMVC配置文件。
(9)创建相关的操作页面,并使用CSS对页面进行美化。
(10)实现页面的各项操作功能,并在相关地方进行验证,操作要人性化。
(11)调试运行成功后导出相关的数据库文件并提交。
五、 实现代码
1、MySQL数据库:
member_db.sql
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `tb_member_info`
-- ----------------------------
DROP TABLE IF EXISTS `tb_member_info`;
CREATE TABLE `tb_member_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`card_no` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`sex` int(11) DEFAULT NULL,
`birthday` date NOT NULL,
`grade` varchar(20) NOT NULL,
`integral` int(11) NOT NULL DEFAULT '200',
`Write_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_member_info
-- ----------------------------
INSERT INTO `tb_member_info` VALUES ('1', 'CS0601202100146245', '杨过', '1', '2021-07-19', '一级', '200', '2021-07-19 18:00:44');
INSERT INTO `tb_member_info` VALUES ('2', 'CS0601202100245211', '杨明金', '1', '2021-07-19', '一级', '5000', '2021-07-19 18:02:35');
INSERT INTO `tb_member_info` VALUES ('3', 'CS0620210305236547', '黄静文', '0', '2021-07-19', '一级', '200', '2021-07-19 18:03:11');
INSERT INTO `tb_member_info` VALUES ('4', 'CS0620210712546895', '李三', '0', '2021-07-02', '四级', '200', '2021-07-19 20:18:01');
INSERT INTO `tb_member_info` VALUES ('5', 'CS0620212315568456', '王二麻子', '1', '2021-07-10', '四级', '200', '2021-07-19 20:21:10');
INSERT INTO `tb_member_info` VALUES ('10', 'CS0620210719319319', '杨明金', '1', '2021-07-10', '四级', '200', '2021-07-19 22:02:09');
INSERT INTO `tb_member_info` VALUES ('13', 'CS0620210720577265', '杨明金', '1', '2021-07-16', '四级', '200', '2021-07-20 10:20:06');
2、JAVA代码:
目录结构: