资源下载:
https://download.csdn.net/download/weixin_44893902/22035329
实现语言:JAVA语言。
使用:MyEclipse/Eclipse + Tomcat + MySql。
使用技术:Jsp+Servlet+JavaBean 或SpringMVC + Spring + Mybatis。
随着信息化时代系统管理的普及,城市中各个每一个超市的会员管理也需要与时俱进,将超市的会员管理进行信息化登记和跟踪,开发一套BS结构的超市会员管理系统,主要功能如下:
(1)按登记时间降序排列。
(2)性别要求显示为“男”或“女”,不能为数据库表中的1和0显示。
(3)当鼠标移动到对应行时,需将对应行背景颜色高亮显示。
(4)底部左侧显示共XXX个会员。
(5)点击左侧的“搜索”按钮,通过姓名搜索,下方表格则显示对应搜索出来的会员信息。
(6)点击右侧“添加会员”则跳转到添加页面。

(1)姓名、出生日期不能为空。
(2)会员卡号后台按规则自动生成。
(3)会员性别在后台用1表示男,0表示女。
(4)会员等级默认为四级。
(5)会员积分默认为200分。
(6)会员登记时间为添加会员时间。
![[图2 新增会员信息界面(img-qxHw9c7l-1630313966663)(file:///C:UsersADMINI~1AppDataLocalTempksohtml18292wps8.jpg)]](https://1000bd.com/contentImg/2022/08/02/011502351.png)



创建数据库(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)调试运行成功后导出相关的数据库文件并提交。
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');
目录结构:

package com.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.TbMemberInfo;
import com.service.MemberService;
@Controller
public class MemberController {
@Resource
private MemberService service;
@RequestMapping("selectAll")
public String selectAll(Model model ,String name) {
if (name==null||name.equals("")) {
name="";
}
List list=service.selectAll(name);
model.addAttribute("memberList", list);
return "/member";
}
//添加页面跳转
@RequestMapping("addPage")
public String addPage() {
return "/addPage";
}
//自动生成卡号的方法
public static String getRandomString(int length){
String str="0123456789";
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i package com.dao;
import com.entity.TbMemberInfo;
import java.util.List;
public interface TbMemberInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(TbMemberInfo record);
TbMemberInfo selectByPrimaryKey(Integer id);
List selectAll();
int updateByPrimaryKey(TbMemberInfo record);
//根据姓名查询
List selsceName(String name);
}
delete from tb_member_info
where id = #{id,jdbcType=INTEGER}
insert into tb_member_info (id, card_no, name,
sex, birthday, grade,
integral, Write_time)
values (#{id,jdbcType=INTEGER}, #{cardNo,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{sex,jdbcType=INTEGER}, #{birthday,jdbcType=DATE}, #{grade,jdbcType=VARCHAR},
#{integral,jdbcType=INTEGER}, #{writeTime,jdbcType=TIMESTAMP})
update tb_member_info
set card_no = #{cardNo,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
sex = #{sex,jdbcType=INTEGER},
birthday = #{birthday,jdbcType=DATE},
grade = #{grade,jdbcType=VARCHAR},
integral = #{integral,jdbcType=INTEGER},
Write_time = #{writeTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
package com.entity;
public class TbMemberInfo {
private Integer id;
private String cardNo;
private String name;
private Integer sex;
private String birthday;
private String grade;
private Integer integral;
private String writeTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo == null ? null : cardNo.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade == null ? null : grade.trim();
}
public Integer getIntegral() {
return integral;
}
public void setIntegral(Integer integral) {
this.integral = integral;
}
public String getWriteTime() {
return writeTime;
}
public void setWriteTime(String writeTime) {
this.writeTime = writeTime;
}
}
package com.service;
import java.util.List;
import com.entity.TbMemberInfo;
public interface MemberService {
//查询所有
List selectAll(String name);
//添加
int addMember(TbMemberInfo tbMemberInfo);
//删除
int deleteMember(int id);
}
package com.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.dao.TbMemberInfoMapper;
import com.entity.TbMemberInfo;
import com.service.MemberService;
@Service
public class MemberServiceImpl implements MemberService {
@Resource
private TbMemberInfoMapper mapper;
@Override
public List selectAll(String name) {
// TODO Auto-generated method stub
if (name.equals("")||name==null) {
List list=mapper.selectAll();
return list;
}else {
List list=mapper.selsceName(name);
return list;
}
}
@Override
public int addMember(TbMemberInfo tbMemberInfo) {
// TODO Auto-generated method stub
int rows=mapper.insert(tbMemberInfo);
return rows;
}
@Override
public int deleteMember(int id) {
// TODO Auto-generated method stub
int rows=mapper.deleteByPrimaryKey(id);
return rows;
}
}
package genter;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class Generator {
/*
* targetRuntime="MyBatis3Simple", 不生成Example
*/
public void generateMyBatis() {
//MBG执行过程中的警告信息
List warnings = new ArrayList();
//当生成的代码重复时,覆盖原代码
boolean overwrite = true ;
String generatorFile = "/generatorConfig.xml";
//String generatorFile = "/generator/generatorConfigExample.xml";
//读取MBG配置文件
InputStream is = Generator.class.getResourceAsStream(generatorFile);
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config;
try {
config = cp.parseConfiguration(is);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//创建MBG
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//执行生成代码
myBatisGenerator.generate(null);
} catch (IOException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (String warning : warnings) {
System.out.println(warning);
}
}
public static void main(String[] args) {
Generator generator = new Generator();
generator.generateMyBatis();
}
}
db.driverClass=com.mysql.jdbc.Driver
db.jdbcUrl=jdbc:mysql://127.0.0.1:3306/member_db
db.user=root
db.password=123456
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Insert title here
添加会员
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
超市会员管理系统
超市会员管理系统
序号
会员卡号
姓名
性别
出生日期
会员等级
会员积分
登记时间
操作
${item.index+1 }
${member.cardNo }
${member.name }
男
女
${member.birthday }
${member.grade }
${member.integral }
${member.writeTime }
删除
共${memberList.size() }个会员
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
Insert title here
member_db
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:spring/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
springmvc
*.do
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦