hadoop+java基于大数据的电脑硬件推荐系统 (源码+文档+调试+可视化大屏)

收藏关注不迷路!!

🌟文末获取源码+数据库🌟

感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人


前言

  随着大数据技术的不断发展和普及,越来越多的用户需要使用电脑硬件来处理庞大的数据量。然而,在市面上繁多的电脑硬件产品中,用户往往难以选择到最适合自己需求的产品。为了解决这一问题,本文提出了基于大数据的电脑硬件推荐系统。
本文首先通过对大数据和电脑硬件的相关知识进行综述,分析了大数据技术对电脑硬件性能的要求。然后,结合用户需求和电脑硬件参数,构建了一个包含用户偏好信息的大数据集。在数据集的基础上,利用机器学习技术构建了电脑硬件推荐系统模型,通过训练模型来预测用户对不同硬件产品的喜好程度。
在实验部分,我们使用了真实的用户数据集和电脑硬件数据集,验证了推荐系统的有效性和准确性。实验结果表明,我们构建的基于大数据的电脑硬件推荐系统具有良好的推荐性能和用户体验,能够为用户提供个性化的电脑硬件推荐服务。通过结合大数据技术和机器学习算法,提出了一种新颖的电脑硬件推荐系统。该系统能够根据用户的个性化需求和电脑硬件性能参数,为用户推荐最适合的硬件产品。未来,我们将进一步优化推荐算法,提高推荐系统的准确性和稳定性,为用户提供更加优质的电脑硬件推荐服务。

详细视频演示

文章底部名片,联系我看更详细的演示视频

一、项目介绍

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven

二、功能介绍

基于大数据的电脑硬件推荐系统主要有管理员、用户两大功能模块。以下将对这两大模块的作用进行详细的剖析。
管理员模块:管理员是系统中的核心用户,管理员登录后,可以对后台系统进行管理。主要功能有价格区间管理、用户管理、品牌管理、笔记本管理、电脑主机管理、电脑外设管理、硬件组装管理、电脑信息管理及系统管理等功能。

基于大数据的电脑硬件推荐系统的总功能模块设计,通过下面这些模块,用户可以方便地进行硬件选择、电脑外设及品牌选择等操作,系统也能提供个性化的硬件推荐和评价互动功能,以提升用户的定制主机体验和满意度:整体功能展示如图4-1所示。
在这里插入图片描述

图4-1 系统整体功能图
本系统是一个基于大数据的电脑硬件推荐系统,旨在帮助用户更快速地选择适合自己需求的电脑硬件产品。系统包含价格区间管理、用户管理、品牌管理、笔记本管理、电脑主机管理、电脑外设管理、硬件组装管理、电脑信息管理等多项功能。下面将对每个模块进行详细描述。
(1)在价格区间管理功能中,用户可以根据自己的预算设定价格范围,系统会根据用户的预算推荐相应价格区间内的电脑硬件产品。
(2)用户管理功能可以记录用户的偏好和购买历史,从而更准确地推荐适合用户的电脑硬件产品。
(3)品牌管理功能可以根据用户对品牌的偏好,推荐特定品牌的电脑硬件产品。
(4)笔记本管理功能可以根据用户需求推荐适合的笔记本产品,包括性能、轻薄程度和续航时间等方面。
(5)电脑主机管理功能可以根据用户的需求推荐适合的主机配置,包括处理器、显卡、内存和硬盘等方面。
(6)电脑外设管理功能可以推荐适合用户的外设产品,包括显示器、键盘、鼠标、耳机等。
(7)硬件组装管理功能可以根据用户的需求推荐适合的硬件组装方案,包括搭配性能和预算等方面。
(8)电脑信息管理功能可以提供各种电脑硬件产品的详细信息和评价,帮助用户做出更准确的选择。
电脑硬件推荐系统结合了价格区间管理、用户管理、品牌管理、笔记本管理、电脑主机管理、电脑外设管理、硬件组装管理和电脑信息管理功能,为用户提供更个性化、更准确的电脑硬件产品推荐服务。

三、核心代码

部分代码:


package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

数据库参考


USE `springboot758879l3`;

--
-- Table structure for table `4y308r15_diannaoxinxi`
--

DROP TABLE IF EXISTS `4y308r15_diannaoxinxi`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `4y308r15_diannaoxinxi` (
  `id` bigint(20) NOT NULL DEFAULT '0' COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `laiyuan` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '来源',
  `biaoti` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '标题',
  `jiage` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '价格',
  `fengmian` longtext CHARACTER SET utf8 COMMENT '封面',
  `gongsi` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '公司',
  `chengxintong` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '诚信通',
  `huitoulv` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '回头率',
  `didian` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '地点',
  `chengjiaoliang` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '成交量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;


DROP TABLE IF EXISTS `aboutus`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aboutus` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
  `content` longtext NOT NULL COMMENT '内容',
  `picture1` longtext COMMENT '图片1',
  `picture2` longtext COMMENT '图片2',
  `picture3` longtext COMMENT '图片3',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `aboutus`
--

LOCK TABLES `aboutus` WRITE;
/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;
INSERT INTO `aboutus` VALUES (1,'2023-12-12 06:24:11','关于我们','ABOUT US','当你设想门外是寒冷可怕的世界时,你还应该开门出去看看,是否真的如此。如果你有信心,你对前途就不犹豫了。如果你有勇气,你就不怕前途是否有困难或危险了每个人心中都应有两盏灯,一盏是希望的灯,一盏是勇气的灯。有了这两盏灯,我们就不怕海上的黑暗和风涛的险恶了。人的一生很像是在雾中行走。远远望去,只是迷蒙一片,辨不出方向和吉凶。可是,当你鼓起勇气,放下恐惧和怀疑,一步一步向前走去的时候,你就会发现,每走一步,你都能把下一步路看得清楚一点。“往前走,别站在远远的地方观望!”你就可以找到你的方向。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');
/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `bijiben`
--

DROP TABLE IF EXISTS `bijiben`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bijiben` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `bijibenming` varchar(200) DEFAULT NULL COMMENT '笔记本名',
  `jiagequjian` varchar(200) DEFAULT NULL COMMENT '价格区间',
  `bijibenfenlei` varchar(200) DEFAULT NULL COMMENT '笔记本分类',
  `pinpai` varchar(200) DEFAULT NULL COMMENT '品牌',
  `tupian` longtext COMMENT '图片',
  `pingmu` varchar(200) DEFAULT NULL COMMENT '屏幕',
  `jiage` double DEFAULT NULL COMMENT '价格',
  `neicun` varchar(200) DEFAULT NULL COMMENT '内存',
  `cunchukongjian` varchar(200) DEFAULT NULL COMMENT '存储空间',
  `yanse` varchar(200) DEFAULT NULL COMMENT '颜色',
  `caizhi` varchar(200) DEFAULT NULL COMMENT '材质',
  `shengchanriqi` date DEFAULT NULL COMMENT '生产日期',
  `shengchanshang` varchar(200) DEFAULT NULL COMMENT '生产商',
  `shangshiriqi` date DEFAULT NULL COMMENT '上市日期',
  `bijibenxiangqing` longtext COMMENT '笔记本详情',
  `thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',
  `crazilynum` int(11) DEFAULT '0' COMMENT '踩',
  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
  `clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
  `discussnum` int(11) DEFAULT '0' COMMENT '评论数',
  `storeupnum` int(11) DEFAULT '0' COMMENT '收藏数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COMMENT='笔记本';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `bijiben`
--

LOCK TABLES `bijiben` WRITE;
/*!40000 ALTER TABLE `bijiben` DISABLE KEYS */;
INSERT INTO `bijiben` VALUES (41,'2023-12-12 06:24:11','笔记本名1','价格区间1','笔记本分类1','品牌1','upload/bijiben_tupian1.jpg,upload/bijiben_tupian2.jpg,upload/bijiben_tupian3.jpg','屏幕1',1,'4G','存储空间1','颜色1','材质1','2023-12-12','生产商1','2023-12-12','笔记本详情1',1,1,'2023-12-12 14:24:11',1,0,1),(42,'2023-12-12 06:24:11','笔记本名2','价格区间2','笔记本分类2','品牌2','upload/bijiben_tupian2.jpg,upload/bijiben_tupian3.jpg,upload/bijiben_tupian4.jpg','屏幕2',2,'4G','存储空间2','颜色2','材质2','2023-12-12','生产商2','2023-12-12','笔记本详情2',2,2,'2023-12-12 14:24:11',2,0,2),(43,'2023-12-12 06:24:11','笔记本名3','价格区间3','笔记本分类3','品牌3','upload/bijiben_tupian3.jpg,upload/bijiben_tupian4.jpg,upload/bijiben_tupian5.jpg','屏幕3',3,'4G','存储空间3','颜色3','材质3','2023-12-12','生产商3','2023-12-12','笔记本详情3',3,3,'2023-12-12 14:24:11',3,0,3),(44,'2023-12-12 06:24:11','笔记本名4','价格区间4','笔记本分类4','品牌4','upload/bijiben_tupian4.jpg,upload/bijiben_tupian5.jpg,upload/bijiben_tupian6.jpg','屏幕4',4,'4G','存储空间4','颜色4','材质4','2023-12-12','生产商4','2023-12-12','笔记本详情4',4,4,'2023-12-12 14:24:11',4,0,4),(45,'2023-12-12 06:24:11','笔记本名5','价格区间5','笔记本分类5','品牌5','upload/bijiben_tupian5.jpg,upload/bijiben_tupian6.jpg,upload/bijiben_tupian7.jpg','屏幕5',5,'4G','存储空间5','颜色5','材质5','2023-12-12','生产商5','2023-12-12','笔记本详情5',5,5,'2023-12-12 14:24:11',5,0,5),(46,'2023-12-12 06:24:11','笔记本名6','价格区间6','笔记本分类6','品牌6','upload/bijiben_tupian6.jpg,upload/bijiben_tupian7.jpg,upload/bijiben_tupian8.jpg','屏幕6',6,'4G','存储空间6','颜色6','材质6','2023-12-12','生产商6','2023-12-12','笔记本详情6',6,6,'2023-12-12 14:24:11',6,0,6),(47,'2023-12-12 06:24:11','笔记本名7','价格区间7','笔记本分类7','品牌7','upload/bijiben_tupian7.jpg,upload/bijiben_tupian8.jpg,upload/bijiben_tupian9.jpg','屏幕7',7,'4G','存储空间7','颜色7','材质7','2023-12-12','生产商7','2023-12-12','笔记本详情7',7,7,'2023-12-12 14:24:11',7,0,7),(48,'2023-12-12 06:24:11','笔记本名8','价格区间8','笔记本分类8','品牌8','upload/bijiben_tupian8.jpg,upload/bijiben_tupian9.jpg,upload/bijiben_tupian10.jpg','屏幕8',8,'4G','存储空间8','颜色8','材质8','2023-12-12','生产商8','2023-12-12','笔记本详情8',8,8,'2023-12-12 14:24:11',8,0,8);
/*!40000 ALTER TABLE `bijiben` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `config`
--

DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  `url` varchar(500) DEFAULT NULL COMMENT 'url',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `config`
--

LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `diannaowaishe`
--

DROP TABLE IF EXISTS `diannaowaishe`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `diannaowaishe` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `waishemingcheng` varchar(200) DEFAULT NULL COMMENT '外设名称',
  `jiagequjian` varchar(200) DEFAULT NULL COMMENT '价格区间',
  `waishefenlei` varchar(200) DEFAULT NULL COMMENT '外设分类',
  `pinpai` varchar(200) DEFAULT NULL COMMENT '品牌',
  `jiage` double DEFAULT NULL COMMENT '价格',
  `tupian` longtext COMMENT '图片',
  `shengchanriqi` date DEFAULT NULL COMMENT '生产日期',
  `shangshiriqi` date DEFAULT NULL COMMENT '上市日期',
  `shengchanshang` varchar(200) DEFAULT NULL COMMENT '生产商',
  `waishejieshao` longtext COMMENT '外设介绍',
  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
  `clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
  `discussnum` int(11) DEFAULT '0' COMMENT '评论数',
  `storeupnum` int(11) DEFAULT '0' COMMENT '收藏数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='电脑外设';
/*!40101 SET character_set_client = @saved_cs_client */;

四、效果图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

五、文章目录

目 录

摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景 1
1.2 国内外发展现状 1
1.3 论文研究意义 3
1.4 论文组织结构 3
第2章 开发环境以及相关技术 5
2.1 Spring Boot介绍 5
2.2 MySQL数据库 6
2.3 VUE框架 6
2.4 MyBatis 6
2.5 Hadoop 7
第3章 需求分析 9
3.1 可行性分析 9
3.2 系统功能分析 10
3.3 系统流程分析 11
3.3.1 系统开发流程设计 11
3.3.2 管理员模块总体流程设计 11
3.3.3 电脑外设管理流程设计 12
3.4 电脑硬件推荐系统算法需求分析 13
第4章 系统设计 16
4.1 系统总功能模块设计 16
4.2 系统数据库设计 17
4.2.1 E-R模型结构设计 17
4.3 JDBC数据访问接口分析 20
4.3 系统架构设计分析 21
第5章 系统实现 22
5.1 系统首页实现 22
5.2 用户注册登录实现 22
5.3 笔记本信息展示 23
5.4 电脑主机信息展示 23
5.5 电脑外设信息展示 24
5.6 硬件组装信息展示 24
5.7 管理员功能模块 25
第6章 系统测试 31
6.1 测试目的 31
6.1.1 测试目的 31
6.1.2 测试模块 31
6.2 测试过程 33
6.3 测试结果 35
第7章 总结与展望 36
7.1 总结 36
7.2 展望 36
参考文献 38
致 谢 40

六 、源码获取

下方名片联系我即可!!


大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值