基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现

🍅 作者主页:Java李杨勇 

🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌  简历模板、学习资料、面试题库、技术互助【关注我,都给你】

🍅 欢迎点赞 👍 收藏 ⭐留言 📝    

🍅 文末获取源码联系方式

一、 绪论 2

1.1 研究背景 2

1.2 研究目的和意义 2

1.3 研究的内容 3

1.4可行性研究设计 3

1.5社会可行性 4

1.6相关技术说明 4

spring 4

Spring 5

jQuery 5

Mysql 6

1) 功能强大 6

2) 支持跨平台 6

3) 运行速度快 6

4) 支持面向对象 7

5) 安全性高 7

6) 成本低 7

7) 支持各种开发语言 7

8) 数据库存储容量大 7

9) 支持强大的内置函数 7

二、 需求分析 8

2.1系统功能概述 8

1) 用户注册和登录登录功能 8

2) 用户信息的管理 8

3) 用户二手物品的操作 8

4) 用户购物车的管理 8

5) 用户订单管理操作管理 8

6)闲置物品类型的管理、添加、修改、删除操作 8

7)网页商品的预览、查看等 8

8)注销退出登录 8

2.2系统运行环境 8

三、 系统设计 9

3.1系统设计 9

3.1.1客户端主要设计 9

3.4主流程描述 9

四、 系统实现 11

4.1 程序主要类 11

4.1.1用户管理员类 11

4.1.4二手物品分类 12

4.1.4二手物品订单类 12

4.1.4二手物品订单类 13

4.1.4二手物品详情类 14

4.1.4用户客户类 15

4.3系统功能主要实现模块截图 16

4.3.1登陆页面 16

4.3.1登录前端代码: 16

4.3.2注册页面: 17

4.3.2 系统功能截图 17

4.3.4部分关键源码展示: 22

4.4数据库表设计 29

4.4.0数据三范式: 29

一、第一范式 29

二、第二范式 29

三、第三范式 29

4.4.1表ER图 30

4.4.2用户表设计 30

4.4.3二手物品分类表设计 30

4.4.4用户订单表设计 31

4.4.5二手物品表详情设计 31

4.4.5二手物品订单表设计 32

4.4.6数据库sql文件 32

五、参考献文 36

主要功能实现:

管理员:商品分类管理,商品管理,商品订单管理,用户管理等功能。
用户角色:查看所有商品,用户登陆注册,按照类别查看商品,发布商品,查看卖家主页,联系卖家,给商品留言,查看订单,修改查看个人资料等功能。

主要技术:

HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis

系统首页:

登录模块:

登录代码实现:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>系统登录 - 超市订单管理系统</title><link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/style.css" /><script type="text/javascript">/* if(top.location!=self.location){top.location=self.location;} */</script>
</head>
<body class="login_bg"><section class="loginBox"><header class="loginHeader"><h1>二手交易平台</h1></header><section class="loginCont"><form class="loginForm" action="${pageContext.request.contextPath }/login.do"  name="actionForm" id="actionForm"  method="post" ><div class="info">${error }</div><div class="inputbox"><label for="user">用户名:</label><input type="text" class="input-text" id="userCode" name="userCode" placeholder="请输入用户名" required/></div>	<div class="inputbox"><label for="mima">密码:</label><input type="password" id="userPassword" name="userPassword" placeholder="请输入密码" required/></div>	<div class="subBtn"><input type="submit" value="登录"/><input type="reset" value="重置"/></div>	</form></section></section>
</body>
</html>

商品详情:

点击购买就创建一个订单信息:

个人中心:

管理员登录:

主要代码实现:

/*** .*****/package io.renren.modules.sys.controller;import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import io.renren.common.utils.R;
import io.renren.modules.sys.shiro.ShiroUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** 登录相关** @author Mark s.com*/
@Controller
public class SysLoginController {@Autowiredprivate Producer producer;@RequestMapping("captcha.jpg")public void captcha(HttpServletResponse response)throws IOException {response.setHeader("Cache-Control", "no-store, no-cache");response.setContentType("image/jpeg");//生成文字验证码String text = producer.createText();//生成图片验证码BufferedImage image = producer.createImage(text);//保存到shiro sessionShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);ServletOutputStream out = response.getOutputStream();ImageIO.write(image, "jpg", out);}/*** 登录*/@ResponseBody@RequestMapping(value = "/sys/login", method = RequestMethod.POST)public R login(String username, String password, String captcha) {String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);if(!captcha.equalsIgnoreCase(kaptcha)){return R.error("验证码不正确");}try{Subject subject = ShiroUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayansubject.login(token);}catch (UnknownAccountException e) {return R.error(e.getMessage());}catch (IncorrectCredentialsException e) {return R.error("账号或密码不正确");}catch (LockedAccountException e) {return R.error("账号已被锁定,请联系管理员");}catch (AuthenticationException e) {return R.error("账户验证失败");}return R.ok();}/*** 退出*/@RequestMapping(value = "logout", method = RequestMethod.GET)public String logout() {ShiroUtils.logout();return "redirect:login.html";}}

管理员主要功能:

分类管理:

商品管理:

订单管理:

用户管理;

主要表设计:

用户表:

CREATE TABLE `NewTable` (
`user_id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`username`  varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名' ,
`password`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码' ,
`salt`  varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '盐' ,
`email`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱' ,
`mobile`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号' ,
`status`  tinyint(4) NULL DEFAULT NULL COMMENT '状态  0:禁用   1:正常' ,
`create_time`  datetime NULL DEFAULT NULL COMMENT '创建时间' ,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `username` (`username`) USING BTREE 
)

订单表:

CREATE TABLE `NewTable` (
`order_id`  bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单表主键id' ,
`order_no`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '订单号' ,
`user_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT '用户主键id' ,
`total_price`  int(11) NOT NULL DEFAULT 1 COMMENT '订单总价' ,
`pay_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT '支付状态:0.未支付,1.支付成功,-1:支付失败' , ,
`pay_time`  datetime NULL DEFAULT NULL COMMENT '支付时间' ,
`order_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT '订单状态:0.待支付 1.已支付 2.配货完成 3:出库成功 4.交易成功 -1.手动关闭 -2.超时关闭 -3.商家关闭' ,
`extra_info`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '订单body' ,
`user_name`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人姓名' ,
`user_phone`  varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人手机号' ,
`user_address`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人收货地址' ,
PRIMARY KEY (`order_id`)
)

商品表:

CREATE TABLE `NewTable` (
`goods_id`  bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '商品表主键id' ,
`goods_name`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品名' ,
`goods_intro`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品简介' ,
`goods_category_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT '关联分类id' ,
`goods_cover_img`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '/admin/dist/img/no-img.png' COMMENT '商品主图' ,
`goods_detail_content`  text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '商品详情' ,
`original_price`  int(11) NOT NULL DEFAULT 1 COMMENT '商品价格' ,
`selling_price`  int(11) NOT NULL DEFAULT 1 COMMENT '商品实际售价' ,`tag`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品标签' ,
`goods_sell_status`  tinyint(4) NOT NULL DEFAULT 0 COMMENT '商品上架状态 0-下架 1-上架' ,
`create_user`  int(11) NOT NULL DEFAULT 0 COMMENT '添加者主键id' ,
PRIMARY KEY (`goods_id`)
)

相关系统设计实现推荐:

基于java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于java ssm springboot+mybatis酒庄内部管理系统设计和实现

基于JAVA springboot+mybatis智慧生活分享平台设计和实现

基于JAVA springboot+VUE前后端分离疫情防疫平台设计实现

基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现

查看更多博主首页更多实战项目 >>>

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,

点击下方微信获取源码和技术资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《零基础》MySQL 连接的使用(二十)

在前几章节中&#xff0c;我们已经学会了如何在一张表中读取数据&#xff0c;这是相对简单的&#xff0c;但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在 SELECT, UPDATE 和 DELETE…

热榜!基于jsp+mysql的JSP在线水果销售商城系统设计实现【建议收藏】

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 文末获取源码联系方式 &#x1f4dd; 研究意…

硬核!从0到1学习Spring Cloud微服务章节《建议收藏》

为什么要使用学习springcloud以及他的优势&#xff1f; Spring Cloud 来源于 Spring&#xff0c;质量、稳定性、持续性都可以得到保证。 spirng Cloud 天然支持 Spring Boot&#xff0c;更加便于业务落地。 Spring Cloud 是 Java 领域最适合做微服务的框架。相比于其它框架&…

《springcloud超级入门》Spring Cloud是什么?Spring Cloud版本介绍《二》

Spring cloud是一系列框架的有序集合。它利用 Spring Boot 的开发便利性&#xff0c;巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务注册、服务发现、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;这些都可以用 Spring Boot 的开发风格做到一键启动…

《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》

了解为什么需要微服务。最初的服务化解决方案是给相同服务提供一个统一的域名&#xff0c;然后服务调用者向这个域发送 HTTP 请求&#xff0c;由 Nginx 负责请求的分发和跳转。 这种架构存在很多问题&#xff1a;Nginx 作为中间层&#xff0c;在配置文件中耦合了服务调用的逻辑…

php完美导出word,PHP使用phpword生成word文档

使用phpword生成文档有两种方式直接使用代码编写word文档&#xff0c;用代码生成word&#xff0c;但是设置样式&#xff0c;格式&#xff0c;图片非常麻烦&#xff0c;不建议使用。如果客户或产品提供一份word的样式&#xff0c;我们也难以完全复原&#xff0c;调样式很头疼的。…

《springcloud超级入门》Spring Cloud开发环境的准备和Lombok安装步骤《四》

开发环境的准备主要涉及三个方面&#xff1a;JDK、Maven、Spring Tools 4 for Eclipse。 1. JDK JDK 的版本用 1.8 即可&#xff0c;环境变量大家自行去配置。配置好环境变量&#xff0c;在命令行中输入“java–version”能够显示出版本信息即可&#xff0c;如图 1 所示。 …

php 制作ppt,PPT制作三个基本要素是什么?

PPT制作三个基本要素是什么&#xff1f;1、一个PPT只为一类人服务&#xff0c;针对不同听众制作不同层次内容&#xff1b;2、PPT永远是为听者服务&#xff1b;3、PPT只讲一个重点&#xff0c;不要试图在某个PPT中既讲技术&#xff0c;又讲管理。PPT优势1.使用 Microsoft Office…

《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Spring Tools 4 for Eclipse 中选择 File->New->Maven Project&#xff0c; 在 pom.xml 中添加 Spri…

php 常用编译参数,php编译参数,不用怕!!

很多初学者&#xff0c;在编译php的时候&#xff0c;容易被php的编译参数吓到&#xff01;例如&#xff1a;./configure \--prefix/usr/local/php \--with-config-file-path/usr/local/php/etc \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-sha…

php设置表单为整数,PHP中如何判断FROM表单提交的数字是否为整数?

在php开发中我们经常需要用表单传递数据&#xff0c;如果我们传递的是整数(int)&#xff0c;经过表单传递后&#xff0c;在接收页面整数的数值类型将会变成字符串(string)类型,这样我们就不能用is_int()函数来判断是否为整数&#xff0c;但是我们可以用is_numeric()和strpos()函…

《SpringCloud超级入门》使用Eureka编写服务消费者《十一》

我们先从 Nginx 说起&#xff0c;了解为什么需要微服务。最初的服务化解决方案是给相同服务提供一个统一的域名&#xff0c;然后服务调用者向这个域发送 HTTP 请求&#xff0c;由 Nginx 负责请求的分发和跳转。 这种架构存在很多问题&#xff1a;Nginx 作为中间层&#xff0c;在…

java echarts 散点图,echarts在地图上绘制散点图(任意点)

项目需求&#xff1a;在省份地图上绘制散点图&#xff0c;散点位置不一定是哪个城市或哪个区县&#xff0c;即任意点通过查询官网文档&#xff0c;找到一个与需求类似的Demo&#xff1a;https://www.echartsjs.com/gallery/editor.html?cscatter-map&#xff0c;更改代码&…

基于java+springboot+mybatis+laiyu实现学科竞赛管理系统《建议收藏》

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

基于java TCP实现网络通信聊天室《建议收藏附完整源码》

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

ORACLE 12C采坑之 ORA-12541:TNS:无监听程序

目录 1.首先查看oracle12c监听服务是否启动 2. ping 本地id是否能ping通 3.检测配置监听是否有错误: 4.重新配置监听器Net Configuration Assistant 5.之后重启OracleServiceORCL服务 1.首先查看oracle12c监听服务是否启动 2. ping 本地id是否能ping通 3.检测配置监听是否…

《SpringCloud超级入门》Eureka自我保护模式和InstanceID的配置《十四》

关闭自我保护 保护模式主要在一组客户端和 Eureka Server 之间存在网络分区场景时使用。一旦进入保护模式&#xff0c;Eureka Server 将会尝试保护其服务的注册表中的信息&#xff0c;不再删除服务注册表中的数据。当网络故障恢复后&#xff0c;该 Eureka Server 节点会自动退…

基于HTML+CSS+JavaScript实现---美丽家乡石埇镇(建议收藏)

java毕业设计项目《100套》推荐 目录 前言&#xff1a; 系统首页&#xff1a; 历史沿革&#xff1a; 地理环境&#xff1a; 自然资源&#xff1a; 经济概括&#xff1a; 社会发展&#xff1a; 交通运输&#xff1a; 古迹人物&#xff1a; 古迹详情&#xff1a; 主要…

Java开发基础知识学习总结之(上)-王者笔记建议收藏

目录 一、面向对象概念 1. 面向对象和面向过程的区别&#xff1f; 2. 对象和类的关系&#xff1f;举例说明 3. 类里面包含什么&#xff1f; 4. 类的特性&#xff1f; 封装性 继承性 多态性 二、网络基础 5. DNS是什么? 6. 域名和端口&#xff1f; 7. CDN是什么? 8…

php支持哪8种数据类型,PHP八种数据类型+使用实例

PHP的八种数据类型PHP中变量的数据类型通常不是由程序员设定的&#xff0c;准确的说&#xff0c;是PHP根据该变量使用的上下文在运行时决定的&#xff0c;简单的说就是&#xff0c;我们不需要设定变量的数据类型&#xff0c;PHP会自动识别。四种标量数据类型boolean(布尔型)也叫…