当前位置: 首页 > news >正文

Java项目:37 springboot003图书个性化推荐系统的设计与实现

作者主页:源码空间codegym

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文中获取源码

项目介绍

springboot003图书个性化推荐系统的设计与实现

管理员:首页、个人中心、学生管理、图书分类管理、图书信息管理、图书预约管理、退换图书管理、管理员管理、留言板管理、系统管理,

学生:首页、个人中心、图书预约管理、退换图书管理、我的收藏管理,前台首页;首页、图书信息、好书推荐、留言反馈、个人中心、后台管理等功能。

JAVA语言;MYSQL数据库;Spring Boot框架

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

运行环境:jdk8 + tomcat9 + mysql5.7 + windows10

服务端技术:Spring Boot+ Mybatis +VUE

使用说明

1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码站地址:http://codegym.top。

运行截图

文档截图

运行界面

O1CN01CnbP6P1qMo9CZma77_!!53-fleamarket.heic_q50

O1CN01cSCE2u1qMo99oNfHc_!!53-fleamarket.heic_q50

O1CN01eeNtAi1qMo9ELYXoK_!!53-fleamarket.heic_q50

O1CN01gKqyiJ1qMo9CYjCHM_!!53-fleamarket.heic_q50.jpg_

O1CN01qmDXU01qMo9H7wHo6_!!53-fleamarket.heic_q50

O1CN010fAN8d1qMo9GS3ONn_!!53-fleamarket.heic_q50

O1CN011nzlIW1qMo9GS6Thk_!!53-fleamarket.heic_q50

O1CN019P6HRo1qMo9BisJeL_!!53-fleamarket.heic_q50

代码

GonggaoController

package com.controller;import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.GonggaoEntity;
import com.entity.view.GonggaoView;
import com.service.DictionaryService;
import com.service.GonggaoService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;/*** 公告* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/gonggao")
public class GonggaoController {private static final Logger logger = LoggerFactory.getLogger(GonggaoController.class);@Autowiredprivate GonggaoService gonggaoService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//级联表service/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(StringUtil.isNotEmpty(role) && "用户".equals(role)){params.put("yonghuId",request.getSession().getAttribute("userId"));}params.put("orderBy","id");PageUtils page = gonggaoService.queryPage(params);//字典表数据转换List<GonggaoView> list =(List<GonggaoView>)page.getList();for(GonggaoView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);GonggaoEntity gonggao = gonggaoService.selectById(id);if(gonggao !=null){//entity转viewGonggaoView view = new GonggaoView();BeanUtils.copyProperties( gonggao , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GonggaoEntity gonggao, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,gonggao:{}",this.getClass().getName(),gonggao.toString());Wrapper<GonggaoEntity> queryWrapper = new EntityWrapper<GonggaoEntity>().eq("gonggao_name", gonggao.getGonggaoName()).eq("gonggao_types", gonggao.getGonggaoTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());GonggaoEntity gonggaoEntity = gonggaoService.selectOne(queryWrapper);if(gonggaoEntity==null){gonggao.setInsertTime(new Date());gonggao.setCreateTime(new Date());//  String role = String.valueOf(request.getSession().getAttribute("role"));//  if("".equals(role)){//      gonggao.set//  }gonggaoService.insert(gonggao);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody GonggaoEntity gonggao, HttpServletRequest request){logger.debug("update方法:,,Controller:{},,gonggao:{}",this.getClass().getName(),gonggao.toString());//根据字段查询是否有相同数据Wrapper<GonggaoEntity> queryWrapper = new EntityWrapper<GonggaoEntity>().notIn("id",gonggao.getId()).andNew().eq("gonggao_name", gonggao.getGonggaoName()).eq("gonggao_types", gonggao.getGonggaoTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());GonggaoEntity gonggaoEntity = gonggaoService.selectOne(queryWrapper);if(gonggaoEntity==null){//  String role = String.valueOf(request.getSession().getAttribute("role"));//  if("".equals(role)){//      gonggao.set//  }gonggaoService.updateById(gonggao);//根据id更新return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());gonggaoService.deleteBatchIds(Arrays.asList(ids));return R.ok();}}
http://www.lryc.cn/news/311786.html

相关文章:

  • mysql 8 修改账号密码
  • 拜占庭将军问题与区块链
  • 字节跳动热门的前端开源项目
  • uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton
  • RabbitMQ如何实现延迟消息?
  • Svg Flow Editor 原生svg流程图编辑器(一)
  • 头像剪切上传
  • 24计算机考研调剂 | 北京信息科技大学
  • 06 - 镜像管理
  • 最简单 导航栏 html css
  • PostgreSQL的学习心得和知识总结(一百三十一)|深入理解PostgreSQL数据库如何使用psql中的变量
  • 支付宝小程序模板开发,实现代小程序备案申请
  • 怎么培养孩子的学习习惯?
  • deeplearning with pytorch (三)
  • LLaMA模型的发布与创新潮流
  • Python之Web开发初学者教程—ubuntu中安装配置redis
  • 如何在Vue中进行单元测试?
  • 开源组件安全风险及应对
  • nginx出现 “414 request-uri too large”
  • 堆和二叉树的动态实现(C语言实现)
  • Vue前端+快速入门【详解】
  • day06_菜单管理(查询菜单,添加菜单,添加子菜单,修改菜单,删除菜单,角色分配菜单,查询菜单,保存菜单,动态菜单)
  • 探究与以太坊智能合约的交互
  • Windows如何安装docker-desktop
  • 芯片设计后端遇到的各种文件类型和文件后缀
  • 【Web】Java反序列化之CC7链——Hashtable
  • NumPy数据处理详解的笔记2
  • xsslabs第四关
  • Qt下使用modbus-c库实现PLC线圈/保持寄存器的读写
  • C++ 滑动窗口