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

springboot二手图书交易系统-计算机设计毕业源码88413

目  录

摘要

1 绪论

1.1研究背景

1.2研究意义

1.3论文结构与章节安排

2 二手图书交易系统系统分析

2.1 可行性分析

2.2 系统流程分析

2.2.1 数据流程

3.3.2 业务流程

2.3 系统功能分析

2.3.1 功能性分析

2.3.2 非功能性分析

2.4 系统用例分析

2.5本章小结

3 二手图书交易系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.2.1整体功能模块设计

3.2.2用户模块设计

3.2.3 评论管理模块设计

3.2.4商城管理模块设计

3.2.5订单管理模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 二手图书交易系统详细设计与实现

4.1用户功能模块

4.1.1 前台首页界面

4.1.2注册界面

4.1.3 登录界面

4.1.4图书资讯详情界面

4.1.5 购物车界面

4.1.6图书详情界面

4.1.7我的订单界面

4.2管理员功能模块

4.2.1用户管理界面

4.2.2资讯管理界面

4.2.3商城管理界面

4.3 卖家功能模块

4.3.1商城中心管理界面

4.3.2订单列表界面

5系统测试

5.1系统测试的目的

5.2 系统测试用例

5.3 系统测试结果

结论

参考文献

  

摘要

随着互联网时代的到来,信息网络化成为社会的主要特征,电子商务的兴起使得交易更加便捷和高效。在这个背景下,本论文针对二手图书交易平台的需求,决定将其转移到网络上,为学生用户提供一个优质、安全的二手图书交易平台,实现在线发布和购买二手图书的功能,推动校园信息化发展。在开发过程中,进行了充分的调研,并比较了目前主流的开发技术,最终选择了基于B/S模式和Spring Boot框架进行开发,利用Java技术实现系统功能。数据库方面选择了MySQL,以保证系统数据的稳定性和安全性。

通过本论文的研究和实践,将为二手图书交易平台的网络化转型提供一个可靠的解决方案。该系统的设计与实现将促进校园信息化发展,提供方便快捷的交易方式,满足学生用户的需求。同时,该系统还注重用户体验和数据安全,在提供便利交易的同时,确保用户信息和交易过程的安全可靠。

基于Spring Boot的二手图书交易系统的开发将为校园内学生用户提供一个高效、安全的交易平台,使二手图书的买卖更加便捷和透明化。这将推动校园信息化发展,促进学生之间的资源共享和可持续利用,同时也为学生提供了一个广阔的学习和阅读空间。

关键词:Java技术;MYSQL;springboot框架;二手图书交易系统

Abstract

With the advent of the Internet era, information networking has become the main feature of society. The rise of e-commerce has made transactions more convenient and efficient. In this context, this paper addresses the demand for second-hand book trading platforms and decides to transfer them to the internet, providing student users with a high-quality and secure second-hand book trading platform, realizing the function of online publishing and purchasing second-hand books, and promoting the development of campus informatization. During the development process, sufficient research was conducted and mainstream development technologies were compared. Finally, the B/S mode and Spring Boot framework were chosen for development, and Java technology was used to implement system functions. MySQL was chosen for the database to ensure the stability and security of system data.

Through the research and practice of this paper, a reliable solution will be provided for the networked transformation of second-hand book trading platforms. The design and implementation of this system will promote the development of campus informatization, provide convenient and fast transaction methods, and meet the needs of student users. At the same time, the system also focuses on user experience and data security, ensuring the security and reliability of user information and transaction processes while providing convenient transactions.

The development of a second-hand book trading system based on Spring Boot will provide an efficient and secure trading platform for student users on campus, making the buying and selling of second-hand books more convenient and transparent. This will promote the development of campus informatization, promote resource sharing and sustainable utilization among students, and also provide students with a broad learning and reading space.

Keywords:Java technology; MYSQL; Springboot framework; Second hand book trading system

1 绪论

1.1研究背景

当下社会是一个充满信息化的网络社会,人们的生活离不开互联网的影响。利用互联网实现信息的传递和管理已经成为日常生活中的常态,使得信息处理和管理效率达到了前所未有的高度。随着经济的快速发展,人们的生活水平也得到了显著提升,物质资源变得更加丰富。然而,随之而来的是各类物品的积累和闲置,这不仅造成了资源的浪费,还需要额外的空间来储存这些闲置物品。对于解决和处理这些闲置物品,大多数人会选择将其出售到二手市场,但这需要花费时间和精力去进行处理和售卖。在如今生活节奏飞快的时代,这种方式已经不再合时宜。

同时,大部分二手物品都是可循环使用的,它们依然具有较高的使用价值,并且有许多人正需要这些二手物品。购买二手物品可以既满足自身需求又能够节约资金,是一种两全其美的方式。然而,在购买二手物品时,缺乏一个好的、专业的平台,导致人们寻找和交易二手物品时效率不高。随着信息时代的到来,这些问题可以通过开发一个专门的二手图书交易系统来解决。通过网络平台,用户可以轻松处理和出售闲置的二手图书,同时也能够方便地购买所需的二手图书。这种二手图书交易系统主要服务于大学生群体,让他们能够更加便捷地实现二手图书的交易和流通。

通过搭建二手图书交易系统,可以解决大学生处理闲置图书和购买二手图书的繁琐问题。该系统将为大学生提供一个方便、安全、高效的交易平台,促进图书资源的再利用,满足大学生对于图书的需求,并推动校园内二手图书交易的发展。

1.2研究意义

当今社会网络日益流行,人们利用网络能够交易、休闲娱乐,并了解天下事,网络的强大已经成为时代进步的象征。在这个网络环境下,电子商务网络交易成为热点,受到人们的喜爱。二手图书交易系统的开发顺应了用户在线购买或出售二手图书的需求。通过该平台,不再需要的闲置图书可以找到真正需要它们的人,实现了资源的循环使用,减少了浪费。从环境保护的角度来看,二手商品的循环利用无疑也起到了一定的作用。

通过二手图书交易系统,解决了传统二手市场和跳蚤市场交易的时间和地点限制等问题。该系统可以24小时不间断地运行,在全国各地的用户只要有网络连接的地方,无论时间和地点都能自由进行买卖交易,既便利又高效。这种灵活性为用户带来了良好的交易体验,使其爱上网络交易。该项目的目标是实现二手图书的买卖交易,满足需要购买或销售二手图书的人的需求。系统考虑周全,能够全方位地满足用户的需求,给用户提供全新的交易服务。

总之,基于网络的二手图书交易系统的开发顺应了当今社会对在线交易的需求。它不仅能够实现图书资源的循环利用,减少浪费,还解决了时间和地点的限制,为用户提供了方便、高效、灵活的交易体验。该系统将为用户提供全新的交易方式,并为二手图书交易市场注入更多活力。

1.3论文结构与章节安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题研究的背景,研究意义和本文的主要工作。

第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。

第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。

第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。

第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 二手图书交易系统系统分析

系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。

2.1 可行性分析

(1)经济可行性:

经济可行性在此仅代表网站的运维成本,开发成本不在此考虑。

目前该模式下的二手图书交易系统的数量日益增多,网上进行二手图书交易系统相关信息的查询管理变得平民化普及化,用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。

所以经济可行性没有问题。

(2)操作可行性:

此次项目设计参考了几个该模式下网站的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。

因此操作可行性也没有问题。

(3)技术可行性:

技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。

现有的Java语言能够迎合所有信息管理系统的搭建,系统技术设备的可扩展性可以由springboot构架的资源优势予以促成。我采用了编译器eclipse+java+mysql用以运行整体程序。

综上所述技术可行性也没有问题。

(4)法律可行性:

从开发者角度来看,springboot框架是网上开源且免费的,在知识产权方面不会产生任何法律纠纷。

从用户使用角度来看,只要不再系统上贩卖违禁品,对系统做出条约协议,杜绝非法支付即可。

综上所述法律可行性也没有问题。

2.2 系统流程分析

2.2.1 数据流程

二手图书交易系统主要的目的就是实现对图书的在线选购,图2-1就是系统的数据流图。

图2-1图书购买操作展开图

3.3.2 业务流程

分析完系统的数据流,接下来我们来看系统的业务流程,图2-2就是业务流程图:

图2-2业务流程图

2.3 系统功能分析

2.3.1 功能性分析

按照二手图书交易系统的角色,我划分为了买家用户模块、卖家模块和管理员管理模块这三大部分。

买家用户管理模块:

(1)用户注册登录:用户注册为会员并登录二手图书交易系统;用户对个人信息的增删改查,比如个人资料,密码修改。

(2)用户查看图书:用户进行图书信息的阅览,通过发现喜欢的图书后可以购买+评论+收藏。

(3)图书购买:用户对喜欢的图书可以加购,在购物车里面,当用户确定提交完毕后,将其提交给服务器后台系统,并生成订单。

(4)购物车:用户对喜欢的图书可以加购,在购物车里面,可以查看到所有加购的图书,支持对图书数量的更改、删除图书,可以进行选择购买。

(5)我的订单:用户在提交订单后,可以对提交的订单进行管理。

(6)公告:用户点击“公告”菜单显示管理员在后台发布的所有的公告信息,可以查看公告详情。

(7)图书资讯:用户点击“图书资讯”菜单显示所有的图书资讯信息,可以按照条件进行图书资讯的筛选或者输入关键词进行局部搜索,点击可以进入图书资讯详细展示界面,在此界面用户可以收藏、点赞和评论。

管理员管理模块:

(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。

(2)公共管理:管理员可以对系统前台展示的轮播图以及公告进行增删改查,方便用户进行查看。

(3)用户管理:管理员可以对前台上注册过的用户信息进行管控,也可以对管理员信息进行管控。

(4)资讯管理:管理员可以对学生社团信息管理系统前台展示的图书资讯以及图书资讯所属的分类进行管控。

(5)分类管理:管理员对二手图书交易系统中图书的分类进行管控。

(6)商城管理:管理员对用户提交的商品订单进行管控。

(7)订单列表:查看用户购买的商品订单,对提交的订单进行管理。

(8)售后信息:管理员点击“售后信息”会显示出所有的售后信息,支持通过图书名称或者订单编号对售后信息进行查询,如果想要添加新的售后信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条售后信息,点击“删除”进行删除。

卖家管理模块:

(1)商城管理:管理员可以对二手图书交易系统中现有的商品进行增删改查。

(2)订单列表:查看购买的我的商品订单,对提交的订单进行管理。

2.3.2 非功能性分析

二手图书交易系统的非功能性需求比如二手图书交易系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1二手图书交易系统非功能需求表

安全性

主要指二手图书交易系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指二手图书交易系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响二手图书交易系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着二手图书交易系统的页面展示内容进行操作,就可以了。

可维护性

二手图书交易系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.4 系统用例分析

通过2.3功能的分析,得出了本二手图书交易系统的用例图:

用户角色用例如图2-3所示。

图2-3 二手图书交易系统用户角色用例图

web后台管理上的管理员是维护整个二手图书交易系统中所有数据信息的。管理员角色用例如图2-4所示。

图2-4 二手图书交易系统管理员角色用例图

卖家用户角色用例如图2-5所示。

图2-5 二手图书交易系统卖家用户角色用例图

2.5本章小结

本章主要通过对二手图书交易系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个二手图书交易系统要实现的功能。同时也为二手图书交易系统的代码实现和测试提供了标准。

3 二手图书交易系统总体设计

本章主要讨论的内容包括二手图书交易系统的功能模块设计、数据库系统设计。

3.1 系统架构设计

本二手图书交易系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1二手图书交易系统系统架构设计图

表现层(UI):又称UI层,主要完成本二手图书交易系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本二手图书交易系统时的舒适度。UI的界面设计也要适应不同版本的二手图书交易系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本二手图书交易系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本二手图书交易系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本二手图书交易系统的数据存储和管理功能。

3.2 系统功能模块设计

3.2.1整体功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本二手图书交易系统中的用例。那么接下来就要开始对本二手图书交易系统的架构、主要功能和数据库开始进行设计。二手图书交易系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。

图3-2 二手图书交易系统功能模块图

3.2.2用户模块设计

后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:

图3-3用户模块结构图

3.2.3 评论管理模块设计

二手图书交易系统是一个交流性质的公开平台,用户可以在平台上交流,增加用户之间的互动性。但是同时也为了更好的规范留言的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:

图3-4评论模块结构图

3.2.4商城管理模块设计

二手图书交易系统是中需要存储不少图书信息,其模块功能结构,具体的结构图如下:

图3-5商城模块结构图

3.2.5订单管理模块设计

二手图书交易系统最重要的一个功能就是购买,其模块功能结构,具体的结构图如下:

图3-5订单模块结构图

3.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1 数据库概念结构设计

下面是整个二手图书交易系统中主要的数据库表总E-R实体关系图。

图3-6 二手图书交易系统总E-R关系图

下面根据二手图书交易系统的数据库总E-R关系图可以得出二手图书交易系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

图3-7买家用户信息E-R关系图

图3-8 图书信息E-R关系图

图3-9 订单信息E-R关系图

图3-10 地址信息E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中二手图书交易系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表address (收货地址:)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

address_id

int

10

0

N

Y

收货地址:

2

name

varchar

32

0

Y

N

姓名:

3

phone

varchar

13

0

Y

N

手机:

4

postcode

varchar

8

0

Y

N

邮编:

5

address

varchar

255

0

N

N

地址:

6

user_id

mediumint

8

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

default

bit

1

0

N

N

0

默认判断

表after_sales_information (售后信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

after_sales_information_id

int

10

0

N

Y

售后信息ID

2

order_number

varchar

64

0

Y

N

订单编号

3

seller_customers

int

10

0

Y

N

0

卖家用户

4

book_name

varchar

64

0

Y

N

图书名称

5

buyer_user

int

10

0

Y

N

0

买家用户

6

buyer_name

varchar

64

0

Y

N

买家姓名

7

purchase_quantity

int

10

0

Y

N

0

购买数量

8

after_sales_type

varchar

64

0

Y

N

售后类型

9

refund_amount

varchar

64

0

Y

N

退款金额

10

related_vouchers

varchar

255

0

Y

N

相关凭证

11

after_sales_reasons

text

65535

0

Y

N

售后原因

12

examine_state

varchar

16

0

N

N

未审核

审核状态

13

examine_reply

varchar

16

0

Y

N

审核回复

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表book_information (图书信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

book_information_id

int

10

0

N

Y

图书信息ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

book_name

varchar

64

0

Y

N

图书名称

4

book_authors

varchar

64

0

Y

N

图书作者

5

publication_time

date

10

0

Y

N

出版时间

6

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

7

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

8

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

9

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

10

cart_price

double

8

2

N

N

0.00

卖价:[1]

11

cart_inventory

int

10

0

N

N

0

商品库存

12

cart_type

varchar

64

0

N

N

未分类

商品分类:

13

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

14

cart_img_1

text

65535

0

Y

N

主图1:

15

cart_img_2

text

65535

0

Y

N

主图2:

16

cart_img_3

text

65535

0

Y

N

主图3:

17

cart_img_4

text

65535

0

Y

N

主图4:

18

cart_img_5

text

65535

0

Y

N

主图5:

19

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表buyer_user (买家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

buyer_user_id

int

10

0

N

Y

买家用户ID

2

buyer_name

varchar

64

0

Y

N

买家姓名

3

buyer_gender

varchar

64

0

Y

N

买家性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cart_id

int

10

0

N

Y

购物车ID:

2

title

varchar

64

0

Y

N

标题:

3

img

varchar

255

0

N

N

0

图片:

4

user_id

int

10

0

N

N

0

用户ID:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

state

int

10

0

N

N

0

状态:使用中,已失效

8

price

double

9

2

N

N

0.00

单价:

9

price_ago

double

9

2

N

N

0.00

原价:

10

price_count

double

11

2

N

N

0.00

总价:

11

num

int

10

0

N

N

1

数量:

12

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

13

type

varchar

64

0

N

N

未分类

商品分类:

14

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的<title>标签中

3

img

text

65535

0

Y

N

封面图:用于显示于产品列表页

4

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

int

10

0

N

Y

商品分类ID:

2

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

3

name

varchar

255

0

Y

N

商品名称:

4

desc

varchar

255

0

Y

N

描述:

5

icon

varchar

255

0

Y

N

图标:

6

source_table

varchar

255

0

Y

N

来源表:

7

source_field

varchar

255

0

Y

N

来源字段:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表logistics_delivery (物流配送)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_delivery_id

int

10

0

N

Y

物流配送ID

2

order_number

varchar

64

0

Y

N

订单号

3

product_name

varchar

64

0

Y

N

商品名称

4

purchase_quantity

varchar

64

0

Y

N

购买数量

5

total_transaction_amount

double

11

2

Y

N

0.00

交易总额

6

the_date_of_issuance

date

10

0

Y

N

发货日期

7

delivery_number

varchar

30

0

Y

N

配送订单

8

ordinary_users

int

10

0

Y

N

0

普通用户

9

shipping_address

varchar

64

0

Y

N

收货地址

10

delivery_status

varchar

64

0

Y

N

配送状态

11

signing_status

varchar

64

0

Y

N

签收状态

12

recommend

int

10

0

N

N

0

智能推荐

13

contact_name

varchar

255

0

Y

N

联系人名字

14

merchant_id

int

10

0

Y

N

商家id

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

32

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

发货状态:未配送,已配送

25

vip_discount

double

11

2

Y

N

0.00

折扣

表seller_customers (卖家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_customers_id

int

10

0

N

Y

卖家用户ID

2

seller_name

varchar

64

0

Y

N

卖家姓名

3

seller_gender

varchar

64

0

Y

N

卖家性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

整个二手图书交易系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 二手图书交易系统详细设计与实现

二手图书交易系统的详细设计与实现主要是根据前面的二手图书交易系统的需求分析和二手图书交易系统的总体设计来设计页面并实现业务逻辑。主要从二手图书交易系统界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入二手图书交易系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。

图4-1 前台首页界面图

4.1.2注册界面

不是二手图书交易系统中正式用户的是可以在线进行注册的,如果你没有本二手图书交易系统的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2 前台注册界面图

注册逻辑代码如下:

  /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}     

4.1.3 登录界面

二手图书交易系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到二手图书交易系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3登录界面图

登录的逻辑代码如下所示:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

4.1.4图书资讯详情界面

用户点击“图书资讯”菜单显示所有的图书资讯信息,可以按照条件进行图书资讯的筛选或者输入关键词进行局部搜索,点击可以进入图书资讯详细展示界面,在此界面用户可以收藏、点赞和评论,图书资讯详情界面如下图4-4所示。

图4-4图书资讯详情界面图

4.1.5 购物车界面

当用户点击导航栏上的“购物车”菜单后,会出现自己加入购物车的图书列表,在购物管理页面可以对图书删除、修改图书的数量,选择部分或者全选进行购买。界面如下图4-5所示。

图4-5购物车界面图

4.1.6图书详情界面

当访客点击了任意图书后将会进入该款图书的详情界面,可以了解到该图书的图片信息、图书信息、价钱信息等,同时可以对该图书进行立即购买+收藏+点赞+评论,图书详情展示页面如图4-6所示。

                          

图4-6 图书详情界面图

4.1.7我的订单界面

当用户点击“我的订单”链接后就进入自己购买的订单的界面展示,界面如下图4-7所示。

图4-7 我的订单界面图

4.2管理员功能模块

4.2.1用户管理界面

二手图书交易系统中的管理人员是可以对前台注册的用户进行管理的,也可以对管理员进行管控。界面如下图4-8所示。

图4-8用户管理界面图

用户管理关键代码如下:

  @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

4.2.2资讯管理界面

管理员点击“资讯管理”菜单能够对其下子菜单图书资讯和资讯的分类进行增删改查,还可以管理评论。界面如下图4-9所示。

图4-9资讯管理界面图

资讯管理关键代码如下:

   @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

4.2.3商城管理界面

二手图书交易系统中的管理人员是可以对二手图书交易系统内的卖家发布的图书进行维护和管理的,支持增删改查操作。界面如下图4-10所示。

图4-10商城管理界面图

商城管理关键代码如下:

 @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

4.3 卖家功能模块

4.3.1商城中心管理界面

卖家进入后台后点击“商城管理”,能够看到自己发布的图书信息,对图书进行管控。界面如下图4-11所示。

图4-11商城管理界面图

商城管理关键代码如下:

 @RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

    }

  

4.3.2订单列表界面

卖家进入后台后点击“订单列表”,能够看到用户购买自己图书的时候提交的订单以及配送信息。界面如下图4-12所示。

图4-12 订单列表界面图

5系统测试

5.1系统测试的目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统测试用例

系统测试包括:用户登录功能测试、图书展示功能测试、图书添加、图书搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

图书查看功能测试:

表5-2 图书查看功能测试表

用例名称

图书查看

目的

测试图书查看功能

前提

用户登录

测试流程

点击图书列表

预期结果

可以查看到所有图书信息

实际结果

实际结果与预期结果一致

管理员添加图书界面测试:

表5-3 管理员添加图书界面测试表

用例名称

图书发布测试用例

目的

测试图书发布功能

前提

用户正常登录情况下

测试流程

1)点击图书信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的图书信息 

实际结果

实际结果与预期结果一致

图书搜索功能测试:

表5-4图书搜索功能测试表

用例名称

图书搜索测试

目的

测试图书搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的图书信息

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3 系统测试结果

通过编写二手图书交易系统的测试用例,已经检测完毕用户登录模块、图书查看模块、图书添加模块、图书搜索模块、密码修改功能测试,通过这5大模块为二手图书交易系统的后期推广运营提供了强力的技术支撑。

结论

在二手图书交易系统开发之前,需要先对用户的具体需求进行分析。包括系统的可行性分析、功能需求分析以及其他需求等。在可行性分析过程中,对系统实现的技术性、经济性以及管理等方面进行了分析。总体上证明了系统实施的可行性。

本文总结了二手图书交易系统实现背景与现状,然后阐述了系统的具体业务需求,并根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块。在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。系统开发完成之后进行了部署,同时进行了系统的测试过程,通过测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性。

参考文献

[1]刘畅,王陈. MySQL数据库课程的教学评价体系设计 [J]. 电子技术, 2024, 53 (01): 393-395.

[2]崔臣,宋甲旭. 基于SpringBoot的校园二手交易系统研究 [J]. 无线互联科技, 2023, 20 (18): 31-34.

[3]Liang C . School Vehicle Management System Based on JAVA Language [J]. Academic Journal of Computing & Information Science, 2023, 6 (9):

[4]张柱,宋存进,蒋乐等. 基于微信小程序校园二手交易平台设计与开发 [J]. 电脑编程技巧与维护, 2022, (12): 59-61+142.

[5]Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):

[6]许诺,高耀,周文柱. 基于改进协同过滤算法的校园二手交易系统研究 [J]. 现代计算机, 2022, 28 (16): 101-105.

[7]Yi Z . Design and implementation of idle Book Trading System Based on Web [J]. Journal of Web Systems and Applications, 2021, 3 (1):

[8]Liu S . Explore Java Language and Android Mobile Software Development [J]. International Journal of Frontiers in Engineering Technology, 2021, 3.0 (2.0):

[9]韩婷婷,高奎. 高校二手书交易系统[P]. 河南省: CN110503518A, 2019-11-26.

[10]李莹, 电子信息 易云云数据库MySQL上线, 翟立新 主编, 中关村年鉴, 北京出版集团公司北京出版社, 2018, 205, 年鉴.

[11]王婧,王晓云,于波. 基于SSM框架的分布式架构二手书交易系统 [J]. 电脑知识与技术, 2019, 15 (03): 86-88.

[12]陈小兵,钱伟,郭旭等. MySQL数据库攻击与安全防范技术研究[C]// 公安部第一研究所. 第六届全国网络安全等级保护技术大会论文集. 北京市公安局大兴分局网安大队;公安部第三研究所;北京市公安局大兴分局;, 2019: 5.

[13]邱杰,彭焕峰,马玲等. 基于SSH框架的校园图书交易系统设计与实现 [J]. 电脑编程技巧与维护, 2017, (09): 35-36+42.

[14]杨军. 基于Thinkphp框架的校园二手图书交易系统的设计与实现[D]. 山东师范大学, 2019.

[15]胡敏. Web系统下提高MySQL数据库安全性的研究与实现[D]. 北京邮电大学, 2019.

[16]梁勇,阳国贵. MySQL数据库的事务一致性研究[C]// 中国通信学会青年工作委员会. 2019通信理论与技术新发展——第十四届全国青年通信学术会议论文集. 国防科技大学计算机学院软件研究所;, 2019: 6.

致  谢

大学的学习生活总是感觉短暂的,总感到知识还没有学够,但大学毕业就在我们面前,即毕业设计即将的结束,意味着我们的大社区用户涯即将结束。毕业设计是我们在大学所学知识的一次总结,更是对我们过去所学知识的提炼和升华,通过毕业设计,我们认识到大学学习过程中还有那些知识没有掌握,那些知识需要我们进入深入研究。这次毕业设计让我学到了很多新的知识,研究了一些新的以前自己不熟悉的领域,使我处理问题的能力得到了一定的提升,同时也为今后的继续深造或踏入社会大门提供了很好的锻炼机会。

我也曾经沮丧过,失落过,想放弃过,可是因为你们这不厌其烦的鼓励和支持才使得我坚持了下来,这里我要对我的老师和同学们说句“谢谢你们”。因为我们的知识是有限的,所以本文将不可避免的会出现一些错误和不足之处,还请老师指正。

点赞+收藏+关注  →私信领取本源代码、数据库

相关文章:

springboot二手图书交易系统-计算机设计毕业源码88413

目 录 摘要 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 二手图书交易系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 二手…...

解决ElasticSearch启动成功却无法在浏览器访问问题

目录 前言&#xff1a; 问题复现 &#xff1a; 解决问题&#xff1a; 1、修改sysctl.conf文件 2、在sysctl.conf文件增加这段东西 3、 然后保存退出&#xff0c;输入以下命令使其生效 结语&#xff1a; 前言&#xff1a; 这篇文章是小白我今天突然启动es&#xff0c;发现e…...

稀土有色包芯线良好的导电性

稀土有色包芯线是一种结合了稀土元素和有色金属(如铜、铝、镁等)的特殊线材。以下是对稀土有色包芯线的详细介绍&#xff1a; 一、组成与结构 芯线&#xff1a;由稀土元素和有色金属组成的合金制成。稀土元素(如镧、铈、镁等)的添加量在一定范围内&#xff0c;以确保合金性能的…...

SIP 业务举例之 Call Forwarding Unconditional(无条件呼转)

目录 1. Call Forwarding Unconditional 简介 2. RFC5359 的 Call Forwarding Unconditional 信令流程 PS:Dialog 建立条件 Dialog 会话完全建立 3. Call Forwarding Unconditional 过程总结 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识…...

基于stm32的esp8266的WIFI控制风扇实验

实验案例&#xff37;&#xff29;&#xff26;&#xff29;控制风扇 项目需求 电脑通过esp8266模块远程遥控风扇。 项目框图 ​ 风扇模块封装 #include "sys.h" #include "fan.h"void fan_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟…...

java中的ScheduledExecutorService介绍和使用案例

ScheduledExecutorService 是 Java 并发包 java.util.concurrent 中的一个接口&#xff0c;它提供了一种机制&#xff0c;允许我们安排一个任务在给定的延迟后运行&#xff0c;或者定期地执行。 主要特点 单次调度&#xff1a;可以安排任务在一定的延迟后执行一次。周期性调度…...

4天涨粉14万!这个AI小众赛道粉丝涨疯了吧?保姆级教程免费教会你!

测一下你的搞钱灵敏度有多高&#xff0c;看下面两张截图&#xff0c;有没有发现什么异常值&#xff1f; 发现了吧&#xff1f; 第一张是10月17号截的&#xff0c;第二张是21号&#xff0c;4天时间粉丝从2.8万飙到16.6万&#xff0c;涨粉14万&#xff01; 这个号我几天之前就发…...

RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

随着人工智能和大数据时代的到来&#xff0c;传统嵌入式处理器中的CPU和GPU逐渐无法满足日益增长的深度学习需求。为了应对这一挑战&#xff0c;在一些高端处理器中&#xff0c;NPU&#xff08;神经网络处理单元&#xff09;也被集成到了处理器里。NPU的出现不仅减轻了CPU和GPU…...

itext 转换word文档转pdf

itext 转换word文档转pdf <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version><scope>compile</scope></dependency> <dependency><groupId>org.a…...

WSL-默认root登录

WSL-默认root登录 使用管理员&#xff0c;打开powershell PS C:\WINDOWS\system32> wsl -l 适用于 Linux 的 Windows 子系统分发版: Ubuntu-22.04 (默认) PS C:\WINDOWS\system32> ubuntu2204.exe config --default-user root PS C:\WINDOWS\system32>修改之后&…...

ASIO网络调试助手之四:浅谈QTcpServer性能

网络上有些质疑Qt Network模块性能的声音,本文将从理论和压测两个方面对比ASIO tcp server和QTcpServer在Windows上的性能,最后给出结论。 一.理论 QTcpServer在Windows上的实现是基于select模型,源码位置:5.12.6\Src\qtbase\src\network\socket\qnativesocketengine_win…...

快手 日常实习一面面经

官网投递&#xff0c;三天约面 线上面试 &#xff08;60mins&#xff09;&#xff1a; 1. 自我介绍 2. 问实习 介绍自己做的业务上一段实习的公司框架和开源的 RPC 框架的区别负责的业务与核心业务的依赖关系场景题 -> 设计高并发下的负载均衡 3. 项目拷打 手写 双检锁…...

Cursor零基础小白教程系列 - 创建你的第一个Cursor 项目

最适合小白零基础的Cursor教程 网站lookai.top相同作者&#xff0c;最新文章会在网站更新&#xff0c;欢迎收藏书签 创建你的第一个Cursor 项目 实操视频 概述 开始使用Cursor进行编程的第一步是创建或导入一个项目。本指南将帮助您了解如何在Cursor中创建新项目、导入现有项…...

通用序列化和反序列化实现思路

本文简单的记录一下采用模板来实现序列化与反序列的思路&#xff0c; 同时采用C20标准的concept和requires来简化模板函数的选择。 首先了解一下自定义类支持序列化的两种方式&#xff1a; 一、序列化自定义类型&#xff08;侵入式&#xff09; struct Test {std::string na…...

书生营第四期L0G2000 Python 基础知识

闯关任务 Leetcode 383(笔记中提交代码与leetcode提交通过截图) class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:note [0]*26maga [0]*26for s in ransomNote:note[ord(s)-ord(a)] 1for s in magazine:maga[ord(s)-ord(a)] 1for i in…...

Day12-数据库服务冗余架构

Day-12-数据库服务高可用集群 1、数据库MGR组复制实践2、数据库高可用MHA应用介绍3、数据库高可用MHA环境准备4、数据库高可用MHA原理机制5、数据库高可用MHA功能配置 1、数据库MGR组复制实践 &#xff08;强一致性主从同步) 2、数据库高可用MHA应用介绍 3、数据库高可用MHA环境…...

js监听div尺寸,ResizeObserver

示例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><style>.observedDiv {width: 40vw;height: 50vh;background-color: lightblue;}</style></head><body><div id"…...

STM32与openmv的串口通信

OpenMV与STM32的通信是嵌入式系统和物联网领域中的一项重要技术。OpenMV是一种开源的微型机器视觉模块&#xff0c;基于ARM Cortex-M7微控制器&#xff0c;支持多种图像处理功能&#xff0c;如颜色识别、形状检测等。而STM32是STMicroelectronics公司推出的基于ARM Cortex内核的…...

C#基于SkiaSharp实现印章管理(11)

PdfSharpCore支持类似GDI方式在PDF页面绘制文字、矩形、圆形、多边形、路径、图片等内容&#xff0c;本文学习基于PdfSharpCore将结构化印章数据导出为PDF文件的基本用法&#xff0c;评估其使用可行性。   PdfSharpCore创建PDF文件很方便&#xff0c;调用PdfDocument类创建实…...

Spring使用@Async出现循环依赖原因以及解决方案

场景复现 1、首先项目需要打开spring的异步开关&#xff0c;在application主类上加EnableAsync 2、创建一个包含了Async方法的异步类MessageService&#xff1a; Service public class MessageService {Resource private TaskService taskService; Async public void…...

如何训练 RAG 模型

训练 RAG&#xff08;Retrieval-Augmented Generation&#xff09;模型涉及多个步骤&#xff0c;包括准备数据、构建知识库、配置检索器和生成模型&#xff0c;以及进行训练。以下是一个详细的步骤指南&#xff0c;帮助你训练 RAG 模型。 1. 安装必要的库 确保你已经安装了必…...

鸿蒙网络编程系列34-Wifi热点扫描及连接示例

1. Wifi热点简介 Wifi热点是移动设备接入网络的重要形式&#xff0c;特别是在不具备固定网络接入点的情况下&#xff0c;可以通过Wifi热点灵活方便的接入网络&#xff0c;因此在日常生活中具有广泛的应用。鸿蒙系统也提供了方便的Wifi管理API&#xff0c;支持热点扫描&#xf…...

LVS三种模式工作原理

常用负载均衡设备 实现负载均衡的技术的方式有哪些&#xff1a;硬件层面有F5负载均衡器&#xff0c;网络层层面有LVS(Linux Virtual Server)&#xff0c;应用层层面就是nginx、Haproxy等。 lvs工作在网络层&#xff0c;nginx工作在应用层。 LVS有三种工作模式 lvs是由章文崇…...

【二轮征稿启动】第三届环境工程与可持续能源国际会议持续收录优质稿件

第三届环境工程与与可持续能源国际会议&#xff08;EESE 2024&#xff09;由中南林业科技大学主办&#xff0c;湖南农业大学协办&#xff0c;将于2024年12月20日-22日在湖南长沙召开。 大会邀请到国家杰出青年科学基金获得者、华中科技大学能源与动力工程学院冯光教授&#xf…...

网络安全——防火墙技术

目录 前言基本概念常见防火墙技术防火墙的主要功能防火墙的不足之处相关题目1.组织外部未授权用户访问内部网络2.DMZ区3.包过滤防火墙和代理服务防火墙 前言 这是在软件设计师备考时编写的资料文章&#xff0c;相关内容偏向软件设计师 基本概念 防火墙技术是网络安全领域中的…...

Missing classes detected while running R8报错解决方案

Android 打包release版本时报错如下&#xff1a; > Task :printlib:minifyReleaseWithR8 FAILED AGPBI: {"kind":"error","text":"Missing classes detected while running R8. Please add the missing classes or apply additional ke…...

智能指针

目录 1. 为什么需要智能指针&#xff1f; 2. 内存泄漏 2.1 什么是内存泄漏&#xff0c;内存泄漏的危害 2.2 内存泄漏分类&#xff08;了解&#xff09; 堆内存泄漏(Heap leak) 系统资源泄漏 2.3 如何检测内存泄漏&#xff08;了解&#xff09; 2.4如何避免内存泄漏 3.…...

通过DevTools逃离Chrome沙盒(CVE-2024-6778和CVE-2024-5836)

介绍 这篇博文详细介绍了如何发现CVE-2024-6778和CVE-2024-5836的&#xff0c;这是Chromium web浏览器中的漏洞&#xff0c;允许从浏览器扩展&#xff08;带有一点点用户交互&#xff09;中进行沙盒逃逸。 简而言之&#xff0c;这些漏洞允许恶意的Chrome扩展在你的电脑上运行…...

手持无人机飞手执照,会组装调试入伍当兵有多香!

手持无人机飞手执照&#xff0c;并具备组装调试技能&#xff0c;在入伍当兵时确实会具有显著的优势和吸引力。以下是对这一情况的详细分析&#xff1a; 一、无人机飞手执照的优势 1. 法规遵从与安全保障&#xff1a; 根据《民用无人驾驶航空器系统驾驶员管理暂行规定》等相关…...

项目经理好累好烦啊,不想干了....

打住&#xff01; 先问问自己&#xff0c;在所有的项目管理过程中&#xff0c;有没有体验到任和何乐趣。如果没有&#xff0c;请不要再继续内耗。 如果有&#xff0c;慎重考虑&#xff0c;然后适当解压&#xff0c;每个岗位都会不同的烦心事&#xff0c;每个企业都不完美&…...

上海网站论坛建设/湖南网站网络推广哪家奿

一、为什么跳槽&#xff1f; 我做后端五年多了&#xff0c;同很多人一样&#xff0c;我大学的专业和程序员这个行业没有任何的关系。毕业后&#xff0c;很迷茫&#xff0c;就做了门槛相对来说较低的服务行业&#xff0c;之后&#xff0c;就一个偶然的机会接触了程序员这个行业…...

雄安移动网上营业厅/昆明优化网站公司

keys * 查看当前库所有的keyexists key 判断某个key是否存在move key db 当前库就没有了&#xff0c;被移除了expire key 秒钟&#xff1a;为给定的key设置过期时间ttl key 查看还有多少秒过期&#xff0c;-1表示永不过期&#xff0c;-2表示已过期type key 查看你的key是什么…...

沈阳德泰诺网站建设公司/建站

那个身高不足一米六零的东方小个子&#xff0c;这次很有可能又搞了一笔大买卖。 据多家外媒报道&#xff0c;日本软银已同意以234亿英镑收购芯片巨头ARM。软银将为每股ARM股票现金支付17英镑&#xff0c;较ARM上周收盘价溢价43%。目前官方还未公开确认。 在此之前&#xff0c;软…...

wordpress删除评论功能/热门职业培训班

接下来我要分享的这个方法&#xff0c;完全可以颠覆传统的那种引粉丝!这个方法是谁看了&#xff0c;谁都能在10分钟之内就能学会的&#xff0c;而且一次推广之后&#xff0c;有可能 一年 2年三年说的更久一点&#xff0c;就是终身的。也就是说你只需要一次推广&#xff0c;一次…...

wordpress 家教/中国网民博客 seo

学习&#xff1a;我和阿九Azure有约 系列视频教程&#xff08;油管可看&#xff09; 第一节&#xff1a;Subscription是什么&#xff1f; 建立Subscription 不用信用卡也不用电话。 我们还可以用下面方式 第二节&#xff1a;Resource Group 第三节&#xff1a;App Service 免…...

网站空间怎么收费/今日头条热搜榜

nautilus 图形化桌面包括了一个叫做 Nautilus 的文件管理器 在GNOME中是Nautilus(鹦鹉螺)&#xff0c;而KDE中是Konqueror...