Springboot阶段项目---《书城项目》

一 项目介绍

   本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现,实现了图书商城系统的综合功能和图形界面的显示,可以根据每个用户登录系统后,动态展示书城首页图书,实现了分类还有分页查询,还有用户可以添加图书到购物车,可以查看图书详情等基本功能。Springboot,SpringMVC,Mybatis等技术。

二 功能详细描述

该系统总共分为书城首页展示功能、书本详情功能,购物车功能,页面动态渲染功能,具体功能如下介绍:

(1) 书城首页展示功能:当用户访问首页时,我们会根据书本类型,书本价格,书本上架时间等对从数据库查询到的数据进行一个分页查询。

(2) 书本详情功能:当用户进入首页看见展示的图书后,用户可以通过点击书本从而进入该书本的详情页面,该页面包括了书本所有的详细信息。

(3) 购物车功能:该功能是一个较为核心的功能,首先用户在进入购物车功能之前,我们会先判断用户是否已经登录,我们使用的springMVC提供的拦截器进行实现,因为查询购物车的信息需要使用用户id。在进入购物车之后,首先我们会根据用户的id和购物车信息进行多表联查,将查询到的数据同样根据图书的分类,价格已经上架时间使用分页查询进行动态展示。同时,购物车也提供了对物品基本的删除,价格统计等功能。

(4) 页面动态渲染。该功能前端主要是使用jQuery来写的前端页面,然后通过ajax与后端进行交互,得到动态数据渲染在前端页面。

三 数据库表的设计

     本项目主要四张表,分别是用户信息表,用于存储用户的基本信息;图书信息表,用于展示图书的基本信息;图书分类表,用于后续对图书进行分类展示;购物车信息表,用于表示每个用户收藏购物车图书的信息。

     下面将分别展示每一张表的设计:

 

 

四 技术实现和难点 

 4.1 登录注册功能

        该功能没有什么特别大的难点,主要需要注意两点,第一点就是我们需要使用自定义全局异常处理器,对用户名和密码的正确性进行一个自定义的异常信息抛出。另外一点就是,为了方便后面业务逻辑的进行,我们在登录成功后,需要把用户的信息存入Session中,后面需要用的时候可以随时取。

4.2 书城首页功能

       该功能是比较核心的功能,它几乎包揽了我们平时使用的curd,但是稍微复杂一点的就是,我们需要根据前端数据动态查询sql。比如我们需要进行图书的分类查询,也可能需要根据价格或者上架时间来查询。另外一点就是分页查询,这个也是我们必须要掌握的。

4.3 购物车功能

       该功能和首页类型,也是对图书进行curd,但是他有一点需要注意,就是我们在进入购物车功能之前需要先进行判断用户是否已经登录,如果没有登录是不能进入购物车功能的,因为购物车的数据需要使用已经登录用户的uid进行数据库查询。所以这里就需要使用拦截器,对购物车请求进行拦截,先判断用户是否登录,如果登录了拦截器才会放行该请求。

4.4 浏览历史功能

       该功能暂未实现。因为我有一种思路就是再建一个表,然后根据该表中的时间字段进行排序查找,只根据最近时间展示前两本书数据,但是因为项目并没有给我们这个表,所以有点不科学。然后又想到了第二种方法,就是把游览的书本数据存入到前端的cookie或者Session中,然后再去里面拿,但是因为还没有试过,不知道怎么解决拿到最近两本书的信息,后面会再进行功能补充。

五 基本页面运行展示

5.1登录注册页面

5.2书城首页页面 

 

5.3购物车页面

 六 设计感言

作为计算机学院的学生,我觉得能做类似的课程设计是十分有意义,而且十分必要的。经过一周的课程设计,我成功的实现了成绩导入,数据查询,统计,删改等基本功能。

本次的课程提高了我编辑代码的能力和分析问题的能力,让我充分利用专业课程所学的知识来解决问题。也解决了我平时拖沓这种不好的学习习惯,增强了学习兴趣。学习的过程有乐趣也有困难,通过查阅课本,参考了网上的设计流程还有老师的讲解逐渐完成了本次任务。

写完运行时出现了很多问题,通过请教老师讲解不会的难点,解决了哈夫曼树如何打印在文档中的问题。并且与同学们的与分享解决了很多的基本问题。最后本次的课程设计使我学到了很多有用的东西,对今后的学习也有了很多帮助。

此次课程设计给我印象最深的就是通过对这个课题的训练,使我基本掌握了Java编程的基础知识,主体模块与功能模块的结合技巧、方法,让我发现了自己的不足之处而且学会了如何查找资料,提高了我的自学能力,也锻炼了我分析问题、解决问题的能力!边学边用这样才会提高效率,也提高了自己对专业的兴趣!

最后该项目的源码我已经放在了我主页的资源里面,名字叫做《书城项目》,另外如果有需要交课设的同学,可以找我拿项目文档。

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

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

相关文章

进程、线程——面经(一)

1、什么是进程(Process),线程(Thread),有什么区别? 进程(Process): 定义: 进程是一个独立的执行环境,它拥有独立的内存空间&#xf…

Linux应用入门(二)

1. 输入系统应用编程 1.1 输入系统介绍 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等。用户经过这些输入设备与Linux系统进行数据交换。这些设备种类繁多,如何去统一它们的接口,Linux为了统一管理这些输入设备实现了一套能兼容所有输入设备的…

怎么压缩pdf pdf在线压缩 pdf文件压缩大小

pdf文件无论在何种设备上打开,PDF文件都能保持其原始的布局和格式,这对于文档共享和打印非常重要。PDF不仅支持文本,还能嵌入图像、视频、音频以及动态链接等元素。PDF文件支持加密和密码保护,可以限制访问、编辑、复制或打印文档…

C语言----深入理解指针(3)

1.字符指针变量 //int main() //{ // char ch w; // char*pc&ch; // printf("%c", *pc); // return 0; //}/*int main() {//char* p "abcdef";//char arr[] "abcdef";//常量字符串 a b c d e f \0//char* pc arr;//将数组首…

高防IP是什么意思?

在网络安全中,企业和用户经常会受到网络攻击和流量攻击,比如DDOS攻击和CC攻击等,那么对于这些网络攻击,企业和用户有什么解决方案呢? 对于网络攻击,高防IP是一种针对网络攻击和分布式拒绝服务攻击设计的IP解…

【002】FlexBison原理分析

0. 前言 Flex和Bison是用于构建处理结构化输入的程序的工具。它们最初是用于构建编译器的工具,但它们已被证明在许多其他领域都很有用。  在第一章中,我们将首先看一点(但不是太多)它们背后的理论,然后我们将深入研究一些使用它…

K8S认证|CKA题库+答案| 5. 创建 Ingress

5 . 创建 Ingress 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node k8s master …

基于Tensorflow卷积神经网络垃圾智能分类系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着城市化进程的加速,垃圾问题日益严重,垃圾分类成为解决这一问题的关…

浅谈金融行业数据安全分类分级

数据安全管理是一项从上而下的、多方配合开展的工作。在进行数据安全管理组织架构建设时,需要从上而下建设;从而全面推动数据安全管理工作的执行和落地;以保证数据安全的合法合规、并长效推动业务的发展和稳定运行。 金融行业机构应设立数据…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

机器学习系列--强化学习

强化学习(Reinforcement Learning,RL)是一种机器学习方法,旨在通过智能体(Agent)在环境(Environment)中采取行动(Actions)并获取反馈(Reward&…

技术驱动未来,全面揭秘 Sui 的生态发展和布局

在不到一年的时间里,由 Mysten Labs 团队创立的 Layer1 区块链 Sui 迅速崛起,成功跃升至去中心化金融(DeFi)的前十名。根据 DeFi Llama 的数据,Sui的总锁定价值(TVL)在短短四个月内增长超过 100…

13-云原生监控体系-Mysqld_exporter 监控 MySQL[部署Dashborad告警规则实战]

文章目录 1. 部署1.1. 二进制方式部署1.1.1. 下载1.1.2. 部署1.1.3. MySQL 服务的配置1.2 docker-compose 方式1.3 配置 Prometheus1.4 测试1.5 mysqld_exporter 命令行运行参数1.5.1. 配置格式1.5.2. 运行参数详解1.5.3. 监控不同的集群2. Dashboard2.

【好玩的经典游戏】Docker环境下部署retroarch-web经典游戏模拟器

【好玩的经典游戏】Docker环境下部署retroarch-web经典游戏模拟器 前言一、RetroArch-web介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查Docker服务状态四、拉取镜像五、创建retroarch-web容器5.1 创建容器5.2 查看容器状态六…

深度学习之基于Tensorflow+Flask框架Web手写数字识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是深度学习领域中的一个经典问题,也是计算机视觉领域的重要应用之一。…

BFT Robotics - 您的智能自动化伙伴

“买机器人,上BFT” 自动化和机器人技术是推动现代工业发展的重要力量。BFT Robotics以其创新的产品系列和定制化解决方案,为企业提供了一条通往高效、智能生产环境的道路。通过采用BFT Robotics的产品和服务,企业不仅能够提高生产效率&#…

编程语言的集合判断逻辑

当判断一个Item是否在集合中,比如List,Map,Array等,只可以判断真,不可以判断假。 如果执着判断,也可以通过设置标志位去实现,这样代码就会显得臃肿,效率低下。 比如 list.forEach…

js JSON.stringify 对象转字符串

通过 JSON.stringify() 把 JavaScript 对象转换为字符串 注: 在 JSON 中,不允许日期对象。JSON.stringify() 函数将把任何日期转换为字符串。在 JSON 中,不允许函数作为对象值。 JSON.stringify() 函数将从 JavaScript 对象删除任何函数&am…

iView实现表格拖拽列宽度,列显示顺序及显示字段

需要实现表格列宽度调整,选择展示表格字段,以及显示顺序,先看效果,每次变动后保存到本地缓存中,也可以与后台配合保存到数据库,实现用户自定义表格. 1.安装vuedraggable实现拖拽 npm i vuedraggable2.新建组件 FilterColumns.vue 我这里默认把操作列放到最后一个并且不允许…