基于Java+SpringBoot+Vue的旧物置换网站设计和实现

news2024/11/23 6:33:49

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

    • 源码传送入口
    • 前言
    • 主要技术
    • 系统设计
    • 功能截图
    • 数据库设计
    • 代码
    • 论文目录
    • 订阅经典源码专栏
      • Java项目精品实战案例《500套》
    • 源码获取

源码传送入口

前言

摘 要

随着时代在一步一步在进步,旧物也成人们的烦恼,许多平台网站都在推广自已的产品像天猫、咸鱼、京东。所以开发出一套关于旧物置换网站成为必需。旧物置换网站主要是借助计算机,通过对用户进行管理。为减少管理员的工作,同时也方便广大用户对个人所需旧物置换的及时查询以及管理。
旧物置换网站的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的springboot框架。中间件服务器是Tomcat服务器,使用Mysql数据库和Eclipse开发 环境。该旧物置换网站包括管理员、用户、卖家。其主要功能包括管理员:首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等,卖家后台:首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理。前台首页;首页、旧物信息、网站公告、个人中心、后台管理等,用户后台:首页、个人中心、旧物信息管理、置换交易管理等功能。
本论文对旧物置换网站的发展背景进行详细的介绍,并且对系统开发技术进行介绍,然后对系统进行需求分析,对旧物置换网站业务信息、系统结构以及数据都进行详细说明。用户可根据关键字进行信息的查找自己心仪的信息等。

关键词:旧物置换网站,Mysql数据库,Java技术 springboot框架

主要技术

2.2.1 B/S架构
B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。
2.2.2 Java技术介绍
Java语言擅长开发互联网类应用和企业级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。
Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。
为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。在Java中难能可贵的一点就是它的垃圾回收机制,它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。
2.2.3 mysql数据库介绍
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实旧物置换环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
本系统使用了MySQL数据库,建立了多张数据库表来存储旧物置换以及旧物置换网站相关数据。系统中主要应用查询(select),修改(update),删除(delete)以及增加(insert)等语句来实现系统功能。
2.2.4 springboot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。

系统设计

在这里插入图片描述

功能截图

.1前台首页功能模块
旧物置换网站,在系统首页可以查看首页、旧物信息、网站公告、个人中心、后台管理等内容,如图5-1所示。
在这里插入图片描述

图5-1系统功能界面图

用户注册,在用户注册页面通过填写用户名、密码、姓名、性别、头像、手机、邮箱等内容进行用户注册,如图5-2所示。

在这里插入图片描述

图5-2用户注册界面图

登录,在登录页面通过填写用户名、密码等信息进行登录,如图5-3所示。
在这里插入图片描述

图5-3登录界面图

个人中心,在个人信息页面中进行编辑用户名、密码、姓名、性别、头像、手机、邮箱、图片可进行修改、删除、图片上传、查看我的收藏操作,如图5-4所示。
在这里插入图片描述

图5-4个人中心界面图

网站公告,在网站公告页面中可以查看公告,如图5-5所示。
在这里插入图片描述

图5-5网站公告界面图

旧物信息,在旧物信息可以查看卖家名、姓名、手机、旧物名称、旧物类型、旧物照片、置换需求等查看进行置换申请、点赞、评论、搜索等操作。程序效果图如下图5-6所示:
在这里插入图片描述

图5-6旧物信息界面图

5.2用户功能模块

用户登录,通过填写账号、密码、角色等信息,输入完成后选择登录即可进入旧物置换系统。程序效果图如下图5-7所示:
在这里插入图片描述

图5-7用户登录界面
用户首页,用户登录进入旧物置换网站可以查看首页、个人中心、旧物信息管理、置换交易管理等内容,如图5-8所示。
在这里插入图片描述

图5-8首页界面图
置换交易管理,用户在置换交易可以查看用户名、姓名、手机、旧物名称、旧物类型、置换物、物品图片、查看卖家回复等进行详情、删除、修改等操作,如图5-9所示。
在这里插入图片描述

图5-9置换交易界面图

5.3管理员功能模块

管理员登录,通过填写账号、密码、角色等信息,输入完成后选择登录即可进入旧物置换系统。程序效果图如下图5-10所示:
在这里插入图片描述

图5-10管理员登录界面

首页,管理员登录进入旧物置换系统可以查看首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等内容。程序效果图如下图5-11所示:
在这里插入图片描述

图5-11管理员首页界面

个人中心,管理员对个人中心进行操作填写原密码、新密码、确认密码并进行添加、删除、修改以及查看。程序效果图如下图5-12所示:
在这里插入图片描述

图5-12密码修改界面

用户管理:管理员进用户管理可以对用户名、密码、姓名、性别、头像、手机、邮箱、图片等进行添加、删除、修改操作。程序效果图如下图5-13所示:
在这里插入图片描述

图5-13用户管理界面

卖家管理:管理员进入卖家管理可以对卖家名、密码、姓名、性别、手机、邮箱、照片等进行添加、删除、修改操作。程序效果图如下图5-14所示:
在这里插入图片描述

图5-14卖家管理界面

旧物信息管理:管理员进入旧物信息可以对卖家名、姓名、手机、旧物名称、旧物类型、旧物照片、置换需求等进行添加、删除、修改操作。程序效果图如下图5-15所示:
在这里插入图片描述

图5-15旧物信息管理界面

置换交易管理:管理员进入置换交易管理可以对卖家名、密码、姓名、性别、手机、邮箱、照片等进行添加、删除、修改操作。程序效果图如下图5-16所示:
在这里插入图片描述

图5-16置换交易管理界面

系统管理:管理员通过系统管理页面查看轮播图/网站公告等进行上传图片,发布公告进行添加、删除、修改以及查看并对整个系统进行维护等操作。程序效果图如下图5-17所示:
在这里插入图片描述

图5-17系统管理界面

5.4卖家功能模块

卖家注册、登录,卖家通过填写卖家名、密码、姓名、性别、手机、邮箱,信息无误后进行填写卖家名、密码、角色等信息,输入完成后选择登录即可进入旧物置换系统,如图5-18所示。
在这里插入图片描述

图5-18卖家注册、登录界面图

首页,卖家登录进入旧物置换网站可以查看首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理等信息,如图5-19所示。

图5-19首页功能界面图

个人中心,在个人信息列表可以查看卖家名、密码、姓名、性别、手机、邮箱、照片等内容,还可以根据需要修改或删除等操作,如图5-20所示。
在这里插入图片描述

图5-20个人信息界面图

旧物信息管理,在旧物信息列表可以编辑卖家名、姓名、手机、旧物名称、旧物类型、旧物照片、置换需求等信息,并可根据需要进行修改或删除等操作,如图5-21所示。

图5-21旧物信息界面图

置换交易管理,在置换交易列表可以查看用户名、姓名、手机、旧物名称、旧物类型、置换物、物品图片、审核回复等信息,并可根据需要进行审核、添加、修改或删除等操作,如图5-22所示。

图5-22置换交易界面图

数据库设计

CREATE TABLE `news` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `introduction` longtext COMMENT '简介',
  `picture` varchar(200) NOT NULL COMMENT '图片',
  `content` longtext NOT NULL COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1614756590324 DEFAULT CHARSET=utf8 COMMENT='网站公告';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `news`
--

LOCK TABLES `news` WRITE;
/*!40000 ALTER TABLE `news` DISABLE KEYS */;
INSERT INTO `news` VALUES (71,'2021-03-03 07:22:20','公告测试1','简介可自行编辑','http://localhost:8080/springboota4365/upload/1614757012369.jpg','<p>内容可自行编辑,可上传图文<img src=\"http://localhost:8080/springboota4365/upload/1614756554018.png\"></p>'),(1614756590323,'2021-03-03 07:29:49','公告测试2','测试','http://localhost:8080/springboota4365/upload/1614756574892.jpg','<p>测试<img src=\"http://localhost:8080/springboota4365/upload/1614756588567.jpg\"></p>');
/*!40000 ALTER TABLE `news` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `storeup`
--

DROP TABLE IF EXISTS `storeup`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `storeup` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `refid` bigint(20) DEFAULT NULL COMMENT '收藏id',
  `tablename` varchar(200) DEFAULT NULL COMMENT '表名',
  `name` varchar(200) NOT NULL COMMENT '收藏名称',
  `picture` varchar(200) NOT NULL COMMENT '收藏图片',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1614756851015 DEFAULT CHARSET=utf8 COMMENT='收藏表';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `storeup`
--

LOCK TABLES `storeup` WRITE;
/*!40000 ALTER TABLE `storeup` DISABLE KEYS */;
INSERT INTO `storeup` VALUES (1614756851014,'2021-03-03 07:34:10',1614756771094,1614756747286,'jiuwuxinxi','华为手机','http://localhost:8080/springboota4365/upload/1614756724203.jpg');
/*!40000 ALTER TABLE `storeup` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `token`
--

DROP TABLE IF EXISTS `token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `token` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `token`
--

LOCK TABLES `token` WRITE;
/*!40000 ALTER TABLE `token` DISABLE KEYS */;
INSERT INTO `token` VALUES (1,11,'用户1','yonghu','用户','q9wuirj0zh11ecrymgletpm1kghum3at','2021-03-03 07:24:24','2021-03-03 00:24:25'),(2,1,'abo','users','管理员','zuuudnq8i9cqnxiiyya67qvwp8j38gwc','2021-03-03 07:25:28','2021-03-03 00:36:30'),(3,1614756609737,'001','maijia','卖家','ez616poah35ptp54l1t8o1ccwmbhv6hj','2021-03-03 07:30:14','2021-03-03 00:35:19'),(4,1614756771094,'01','yonghu','用户','fasbtyj61yfp1t3ecbce3i51yo5ux5qf','2021-03-03 07:32:56','2021-03-03 00:37:34');
/*!40000 ALTER TABLE `token` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `users`
--

DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `users`
--

LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES (1,'abo','abo','管理员','2021-03-03 07:22:20');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `yonghu`
--

DROP TABLE IF EXISTS `yonghu`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `yonghu` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `yonghuming` varchar(200) NOT NULL COMMENT '用户名',
  `mima` varchar(200) NOT NULL COMMENT '密码',
  `xingming` varchar(200) NOT NULL COMMENT '姓名',
  `xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
  `shouji` varchar(200) DEFAULT NULL COMMENT '手机',
  `youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',
  `zhaopian` varchar(200) DEFAULT NULL COMMENT '照片',
  PRIMARY KEY (`id`),
  UNIQUE KEY `yonghuming` (`yonghuming`)
) ENGINE=InnoDB AUTO_INCREMENT=1614756771095 DEFAULT CHARSET=utf8 COMMENT='用户';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `yonghu`
--

LOCK TABLES `yonghu` WRITE;
/*!40000 ALTER TABLE `yonghu` DISABLE KEYS */;
INSERT INTO `yonghu` VALUES (1614756771094,'2021-03-03 07:32:51','01','01','小王','女','13900000000','139@qq.com','http://localhost:8080/springboota4365/upload/1614756799699.jpg');
/*!40000 ALTER TABLE `yonghu` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `zhihuanjiaoyi`
--

DROP TABLE IF EXISTS `zhihuanjiaoyi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `zhihuanjiaoyi` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',
  `xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `shouji` varchar(200) DEFAULT NULL COMMENT '手机',
  `jiuwumingcheng` varchar(200) DEFAULT NULL COMMENT '旧物名称',
  `jiuwutupian` varchar(200) DEFAULT NULL COMMENT '旧物图片',
  `zhihuanwu` varchar(200) DEFAULT NULL COMMENT '置换物',
  `wupintupian` varchar(200) DEFAULT NULL COMMENT '物品图片',
  `wupinxiangqing` longtext COMMENT '物品详情',
  `sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
  `shhf` longtext COMMENT '审核回复',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1614756898632 DEFAULT CHARSET=utf8 COMMENT='置换交易';
/*!40101 SET character_set_client = @saved_cs_client */;

代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

论文目录

目 录
摘 要 I
目 录 III
第1章 概述 1
1.1 研究背景 1
1.2 研究现状 1
1.3 研究内容 2
第二章 开发技术介绍 2
2.1 系统开发平台 2
2.2 平台开发相关技术 3
2.2.1 B/S架构 3
2.2.2 Java技术介绍 4
2.2.3 mysql数据库介绍 4
2.2.4 springboot框架 4
第三章 系统分析 5
3.1 可行性分析 6
3.1.1 技术可行性 7
3.1.2 经济可行性 8
3.1.3 操作可行性 8
3.2 系统性能分析 9
3.3 系统功能需求分析 10
第四章 系统设计 11
4.1 系统的功能结构图 11
4.2 数据库概念结构设计 12
4.2.1 数据库E-R图 13
4.2.2 数据库逻辑结构设计 13
第五章 系统功能实现 14
5.1前台首页功能模块 15
5.2用户功能模块 16
5.3卖家功能模块 17
5.4管理员功能模块 17
第六章 系统测试 20
6.1 测试内容与结果 20
6.2 测试结论 21
结束语 23
致 谢 24
参考文献 25

订阅经典源码专栏

Java项目精品实战案例《500套》

源码获取

欢迎大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
在这里插入图片描述

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

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

相关文章

深度学习中安装了包但是依然导入(import)失败这一问题,例如pytorch环境下已经安装了scikit-learn但是import不了

在跑深度学习模型的时候我们要先搭建pytorch环境&#xff0c;这个环境跟windows环境是不同的&#xff0c;我们默认在windows中安装的包在当前的虚拟环境中读取不到&#xff0c;所以导致我们明明安装了包但是依然在实际的导入中(import)报错。解决办法就是我们去虚拟环境中安装包…

使用Scrapy构建高效的网络爬虫

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 Scrapy是一个强大的Pyth…

电脑怎么取消磁盘分区?

有时候&#xff0c;我们的电脑会出现一个磁盘爆满&#xff0c;但另一个却空着&#xff0c;这时我们可以通过取消磁盘分区来进行调整&#xff0c;那么&#xff0c;这该怎么操作呢&#xff1f;下面我们就来了解一下。 磁盘管理取消磁盘分区 磁盘管理是Windows自带的磁盘管理工具…

展会动态 | 迪捷软件邀您参加2023世界智能网联汽车大会

*9月18日之前注册的观众免收门票费* 由北京市人民政府、工业和信息化部、公安部、交通运输部和中国科学技术协会联合主办的2023世界智能网联汽车大会将于9月21日-24日在北京中国国际展览中心&#xff08;顺义馆&#xff09;举行。 论坛背景 本届展会以“聚智成势 协同向新——…

论文阅读 - Natural Language is All a Graph Needs

目录 摘要 Introduction Related Work 3 InstructGLM 3.1 Preliminary 3.2 Instruction Prompt Design 3.3 节点分类的生成指令调整 3.4 辅助自监督链路预测 4 Experiments 4.1 Experimental Setup 4.2 Main Results 4.2.1 ogbn-arxiv 4.2.2 Cora & PubMed 4.…

类似东郊到家上门按摩小程序/包括商家入驻、服务查询、订单管理、用户评价等

类似东郊到家上门按摩小程序&#xff0c;简单前端模版。覆盖产品&#xff0c;订单&#xff0c;技师&#xff0c;招聘&#xff0c;充值&#xff0c;优惠等功能。 东郊到家小程序同城预约上门小程序的功能非常齐全&#xff0c;包括商家入驻、服务查询、订单管理、用户评价等&…

全国职业技能大赛云计算--高职组赛题卷④(私有云)

全国职业技能大赛云计算--高职组赛题卷④&#xff08;私有云&#xff09; 第一场次题目&#xff1a;OpenStack平台部署与运维任务1 基础运维任务&#xff08;5分&#xff09;任务3 OpenStack云平台运维&#xff08;15分&#xff09;任务4 OpenStack云平台运维开发&#xff08;1…

数据结构——八叉树

八叉树&#xff08;Octree&#xff09;是一种用于表示和管理三维空间的树状数据结构。它将三维空间递归地分割成八个八分体&#xff08;octant&#xff09;&#xff0c;每个八分体可以继续分割&#xff0c;以实现对三维空间的更精细的划分。八叉树通常用于解决空间搜索和查询问…

高级深入--day27

Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted[twɪstɪd](其主要对手是T…

如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

jvm中对象创建、内存布局以及访问定位

对象创建 Java语言层面&#xff0c;创建对象通常&#xff08;例外&#xff1a;复制、反序列化&#xff09;仅仅是一个new关键字即可&#xff0c;而在虚拟机中&#xff0c;对象&#xff08;限于普通Java对象&#xff0c;不包括数组和Class对象等&#xff09;的创建又是怎样一个过…

基于SSM的电动车租赁网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的人脸专注度…

Kotlin Coroutines包下的select函数简介

在工作中&#xff0c;发现了kotlin Coroutines包下有大量功能非常强大的API&#xff0c;这篇文章中&#xff0c;我们主要来聊一聊select函数 1. 什么是select函数 想象一下这个场景&#xff0c;在程序应用中&#xff0c;为了实现一个业务逻辑&#xff0c;你可能有好几种方式来…

石河子大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许

石河子大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许

LLM预训练之RLHF(一):RLHF及其变种

在ChatGPT引领的大型语言模型时代&#xff0c;国内外的大模型呈现爆发式发展&#xff0c;尤其是以年初的LLaMA模型为首的开源大模型和最近百川智能的baichuan模型&#xff0c;但无一例外&#xff0c;都使用了「基于人类反馈的强化学习」&#xff08;RLHF&#xff09;来提升语言…

football 篮球数据集-目标检测548张

“篮球&#xff08;basketball&#xff09;&#xff0c;是以手为中心的身体对抗性体育运动&#xff0c;是奥运会核心比赛项目。1891年12月21日&#xff0c;由美国马萨诸塞州斯普林菲尔德基督教青年会训练学校体育教师詹姆士奈史密斯发明。1896年&#xff0c;篮球运动传入中国天…

扩散原理详解与实战

学习一下扩散模型的数学原理。 前向扩散 q ( x t ∣ x 0 ) N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q\left(\mathbf{x}_t \mid \mathbf{x}_0\right)\mathcal{N}\left(\mathbf{x}_t ; \sqrt{\bar{\alpha}_t} \mathbf{x}_0,\left(1-\bar{\alpha}_t\right) \mathbf{I}\rig…

【Graph Net学习】GNN/GCN代码实战

一、简介 GNN&#xff08;Graph Neural Network&#xff09;和GCN&#xff08;Graph Convolutional Network&#xff09;都是基于图结构的神经网络模型。本文目标就是打代码基础&#xff0c;未用PyG&#xff0c;来扒一扒Graph Net两个基础算法的原理。直接上代码。 二、代码 …

Vue3记录

Vue3快速上手 1.Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09;耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址&#xff1a;https://github.com/vuejs/vue-next/releas…