二手书交易系统

简介: 二手书交易系统

一.系统描述

会员:会员注册,基本信息修改;二手书籍出售信息的编辑、修改、发布(发布后不可再修改)、关闭(关闭后他人不可再留言);查询并维护自己的出售信息,查询他人发布的出售信息并可以留言,可以对他人的留言进行回复;

管理员:会员管理(权限管理,例如是否可以发布出售信息,取消用户会员资格等),出售信息管理(管理员拥有对虚假消息进行管理的权力,可以屏蔽虚假消息)。


二.所采用的Java EE技术(如MVC架构,JSP/Servlet,EL,JSTL,JDBC等)

MVC架构 Jsp Servlet EL表达式 jstl JDBC filter Listener


三.数据库设计(ER图)(少了书和评论的关系)

2018122814580746.png


四.实验的主要模块功能及其实现

2018122814580746.png

1.登录注册模块

登录:用户在网页输入账号密码和验证码之后,后台会先验证验证码是否正确,然后根据账号密码查找数据库是否存在该用户,如果存在,验证通过,系统会将该用户存进session对象中,以便后期验证;验证不通关则提示错误信息。如果会员不输入任何内容就按了登录按钮,系统会提示输入内容为空,请重新输入。

注册:新用户通过点击注册按钮,输入个人基本信息,管理员会在后台为其授权为会员和授权其能出售书籍的权限。

2.个人中心模块

一:展示个人信息,并且可以对个人信息进行修改。其中展示个人信息功能主要是系统从session中获取登录用户的对象,然后有选择地将信息展示出来。对个人信息地修改功能主要是通过用户点击修改按钮,系统会根据用户地id找到对象,将其信息回填到跳转地页面中,然后用户有选择地修改个人信息。

二:展示个人书籍模块,这个模块底层是个多表查询,其sql语句为:

SELECT b.book_id, b.book_name," +
                    "b.price," +
                    "b.content," +
                    "b.store," +
                    "bt.book_type_name FROM " +
                    "users u " +
                    "LEFT JOIN user_book ub ON u.u_id = ub.u_id " +
                    "LEFT JOIN book b ON ub.book_id = b.book_id " +
                    "LEFT JOIN book_type bt ON bt.book_type_id = b.book_type_id "+
                    "WHERE u.u_id = ?"

通过左连接的方式查询到用户所上传的书本,将数据存到List集合,然后展示出来。

3.上传闲置书籍

因为创建数据表的时候定义了书和用户之间的关系为多对多,创建了一个中间表表示二者的关系,所以写这个功能的时候,需要实时更新这个中间表之间的值,不能只是简单的插入功能,我是在插入完成之后,执行查询语句,查询数据库中最后一本书的主键,然后将这个主键和用户的id插入到数据库中间表中。

4.查看书籍详情

这个功能主要是查看主页中展示出来的某本书的详细信息,并且可以在下面对书进行评论和查看别人的评论

5.修改书籍信息

这个功能跟修改个人信息有点相似,主要是先找到这本书,将信息回填到新跳转的页面中,然后根据用户意愿修改。根据需求,如果这本书已经发售,则不能再修改信息。(这个由jsp页面设置了el表达式来完成)。

6.评论

评论(两层型)分为评论和回复功能

评论:正常的插入操作,先根据书的id获取这本书的信息,如果这个本书可以评论,则执行插入操作,评论表中有一个字段是parentId,这个id存的是回复评论中,上一条评论的id,所以第一次评论都直接赋值为-1。

回复评论:回复评论功能和评论功能差不多,就是将parentId设置为父评论的id。

7.查看评论

评论显示很复杂,首先需要根据书的id获取关于这本书的全部评论,准备了三个集合:

List<Common> commons = new ArrayList<>();
Map<Integer, List<Common>> reply = new HashMap<>();
Map<Integer, String> userNames = new HashMap<>();

通过增强for循环,将评论的人的id和名字存进userNames中,如果评论记录的parentId为-1,则将其存进commons表中,他是一条评论的开始(顶楼),否则将其存进reply表中(子评论)

8.防止用户未登录也可以访问资源

对于浏览器不登陆也能访问系统内部页面的情况,创建一个filter,用于对浏览器是否登录的状态判定。当浏览器发起访问服务端资源的请求时,filter会拦截该请求,看这个浏览器是否登录,再放行。


五、程序运行时的输入数据/输出结果

1.登录

2018122814580746.png

2.注册

2018122814580746.png

3.个人中心

2018122814580746.png

4.修改个人信息

2018122814580746.png

5.我的书籍(包含发布和未发布的)

2018122814580746.png

6.上传闲置

2018122814580746.png

7.查看书籍详情

2018122814580746.png

8.评论

2018122814580746.png

9.权限管理

2018122814580746.png

六、问题与收获

一.问题

1.用原始的技术独立开发一个管理系统挺不容易的,遇到最大的困难还是前端问题吧,后端写好之后,不知道前端页面怎么实现,写完总感觉与自己想的不太一样,写之前想到的样式,不知道叫什么名字,也不知道怎么实现。前端有待加强。

2.后端遇到的问题中,个人认为评论功能最难实现了。因为要设置回复功能,不能只是简单的一层评论,在网上看了好多博文,发现评论分好三种,一种是前面提到过的单一评论,另外就是嵌套递归评论,这种虽可以回复,可是消耗的资源太大,其次就是两层型,不仅可以评论,也不消耗资源。

3.其次就是创建数据库的问题,看着需求不是很看的懂,创建的数据表不完美。

二.收获

通过本次的项目练习,对servlet jdbc jsp等技术都有了一个新的认识,通过一些业务的处理,对多表操作更加熟练了,也加深了sql语句的认识。此外,通过本次的项目,也加强了debug的能力。对于定点查找bug的能力更熟练了。

一个课程实验,觉得还行的话,求个一键三连,支持支持

目录
打赏
0
0
0
0
3
分享
相关文章
视频号小店达人带货系统开发
视频号小店达人带货系统开发是一个综合性的项目,旨在通过视频号平台为商家和达人提供一个高效、便捷的电商带货解决方案。
鲜花线上销售管理系统的设计与实现
鲜花线上销售管理系统的设计与实现
337 0
贸易管理系统——解决进出口业务难题
自动化处理:通过自动化流程,让您轻松完成贸易流程,节省大量时间和精力。
139 0
撮合交易系统简介
为了应对更高峰值的成交量,国内各金融机构,主要是交易所和银联、中心之间需求越来越多
474 0
撮合交易系统简介
ssm易物小店交换系统-二手咸鱼交易系统
通篇文章的撰写基础是实际的应用需要,然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程,以易物小店的实际应用需要出发,架构系统来改善现易物小店工作流程繁琐等问题。不仅如此以操作者的角度来说,该系统的架构能够对交易进行有效的管理。本系统是利用ssm框架而设计的一款结合用户的实际情况而设计的平台,利用VUE技术来将可供用户和管理员来使用的所有界面来显示出来,利用Java语言技术来编程实现用户和管理员所执行的各类操作业务逻辑,以MySQL数据库来存取系统的数据。采用B/S模式,使用者容易上手,能够给用户更好的体验。
151 0
NFT拍卖交易系统开发数据存储
  非同质化意味着它是独一无二的,这与ERC20代币截然不同,后者都是同质化代币。这些NFT可以通过编程来完成几乎任何你想做的事情,就像普通的智能合约一样,但它们具有链上加密的真实性,因为它们的部署历史将随着区块链的存在而得到几乎永久的保证。
NFT拍卖交易系统开发数据存储
字画系统拍卖竞拍开发定制技术实现方案及需求
数字藏品是NFT的一个分支,NFT(Non-fungible token),是一种基于以太坊区块链的“非同质化代币”,数字藏品就是NFT的一种应用形式, 即使用区块链技术,对应特定的作品、艺术品生成的唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用。数字藏品具有唯一性,被永久存储在区块链上,无法被复制和随意纂改,可以追根溯源和明确版权。
字画系统拍卖竞拍开发定制技术实现方案及需求
字画拍卖竞拍系统开发技术实现方案及说明
  数字藏品是NFT的一个分支,NFT(Non-fungible token),是一种基于以太坊区块链的“非同质化代币”,数字藏品就是NFT的一种应用形式,即使用区块链技术,对应特定的作品、艺术品生成的唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用。数字藏品具有唯一性,被永久存储在区块链上,无法被复制和随意纂改,可以追根溯源和明确版权
字画拍卖竞拍系统开发技术实现方案及说明
美团开店首秀:全自动拣货,95%订单全无人配送
敢为人先的美团,也开始学起亚马逊开店了,不过这是第一家由骑手经营的智慧门店。以无人微仓和无人配送发展「前置仓 + 即时配送」的新型零售门店,首次落地首钢园,为 3km 半径内智慧园区的生活服务提供新的机会。
345 0
美团开店首秀:全自动拣货,95%订单全无人配送