基于SSM框架的商场导视系统设计与实现

目 录

摘 要 1
Abstract 2
引 言 3
1 系统开发相关技术 5
1.1 框架技术 5
1.1.1Spring框架 5
1.1.2Mybatis框架 5
1.1.3SpringMVC框架 6
1.2 MySQL数据库 7
1.3前端技术 7
1.3.1ECharts图表技术 7
1.3.2bookstorp框架技术 8
1.4 本章小结 8
2 系统需求分析 9
2.1 系统需求实现目标 9
2.2 功能需求 9
2.2.1消费者触屏端导视系统 9
2.2.2店铺员工应用系统 9
2.2.3商场导视管理员系统 10
2.3 导视系统工作流程 10
2.4 用例分析 12
2.4.1前台顾客导视功能 12
2.4.2店铺用户使用功能 13
2.4.3管理员后台管理功能 13
2.5 本章小结 14
3 系统的设计 15
3.1 系统的总体设计 15
3.1.1系统的功能结构设计 15
3.1.2软件的体系架构 15
3.1.3安全性的总体设计 16
3.1.4框架使用设计 16
3.2 系统详细设计 16
3.2.1数据库设计 16
3.2.2数据表设计 17
3.2.3功能模块的详细设计 20
3.3 本章小结 22
4 导视系统的实现 23
4.1 开发环境 23
4.2 开发规范 23
4.2.1变量命名 23
4.2.2系统方法名规范 23
4.2.3注释规范 23
4.3 系统功能模块实现 24
4.3.1登录模块 24
4.3.2发布信息模块 24
4.3.3管理员店铺核心模块 25
4.3.4导视图模块 27
4.3.5图表模块 28
4.4 本章小结 28
5 导视系统测试 29
5.1 测试计划 29
5.2 测试用例 29
5.3 测试结果 30
5.4 本章小结 32
结 论 33
致 谢 34
参考文献 35

摘 要

IT行业的发展,促使了许多的网上商城,所以近年来实体商场和网上商场竞争是愈演愈烈。现如今传统的商场管理模式已经不能满足到人们的需求,所以通过对商场进行升级,让商场内增加科技感不宜为一个好办法。所以实体店经营迫切需要使用信息技术来提高顾客的购物体验,同时通过信息化管理也能降低成本。在此种情况催化下,可通过智能化商场导视系统,把传统的导视图,替换成显示屏,在上面进行动态的导视能力。所以本文针对当前存在的此种迫切需求,开发了商场导视系统。
通过对商场导视功能的业务流程的调研,并充分考虑到未来导视系统需求的不断更新等可变需求因素进行开发,所开发的导视系统根据面向人群不同分为商场管理员后台管理,商铺员工应用模块,以及前台导视展示页面三部分。本系统的突出之处在于在展示给人们的导视系统显示屏中的店铺位置的实时更新,可通过系统模糊搜索找到自己想去的店铺。采用SSM框架,以Spring容器管理,SpringMVC来控制视图管理,Mybatis进行数据处理,使得系统具有可扩展性强、可重用性高等特点。采用SQL Server作为后台数据库。在通过体验人员反馈,都希望尽快应用到商场中。

关键词:Spring容器; 模糊搜索; 商城导视系统; SSM框架

Abstract

The development of IT industry has promoted many online shopping malls ,so the competition between physical shopping malls and online shopping malls has become increasingly fierce in recent years. At present, the traditional management mode of shopping malls cannot meet people’s needs, so it is a good way to upgrade shopping malls and increase the sense of technology in shopping malls. Therefore, it is urgent for brick-and-mortar stores to use information technology to improve customers’ shopping experience. Meanwhile, information management can also reduce costs and provide faster real-time updates. In this case, the traditional guiding view can be replaced by the display screen through the intelligent shopping mall guiding system to carry out dynamic guiding capability. Therefore, this paper develops the shopping mall guidance system in view of the current urgent need.
Through the investigation of the business process of the shopping mall guide function and the development of variable demand factors such as the constant updating of the demand of the future guide system, the developed guide system is divided into three parts according to the different crowd, namely, the backstage management of the shopping mall administrator, the application module of store staff and the front desk guide display page. The outstanding feature of this system is the real-time update of the store location in the display screen of the guide system, which enables you to find the store you want to go through the system fuzzy search. SSM framework, Spring container management, SpringMVC to control view management, Mybatis data processing, so that the system has strong scalability and high reusability characteristics. SQL Server is used as the background database. In the experience staff feedback, hope to be applied to the mall as soon as possible.

Keywords: Spring container; Fuzzy search; Shopping mall guide system; SSM framework

引 言

经过时代的进步,IT行业的崛起,各行各业从传统的人工管理慢慢的转换为智能化,网络互联化管理,越来越多种类的系统软件被开发。在现在各个城市中都有数不清的商场,或大或小,有的层次清晰,顾客可以明确找到自己的目标;有的商场结构混乱,顾客在购物时,经常容易迷失方向;有时想返回心仪店铺时,却不知道如何选择路线。
有很多消费者并不能有效识别,因此亟需开发一个能够动态识别商场目标,并能对用户形成有效指引的导视系统。所以通过开发软件系统来更好的实现商场导视功能,方便用户使用。
在国外是最先开始开发商场导视智能系统,导视系统缩写就此被命名为Mall Navigation,具体开发人员是由Solution One于2005年创立的,到如今都在不断的开发研究,慢慢也衍生了对商业场所、大中小型购物商场等量声定制开发的到导视系统,并且开发也多种多样,更是结合了人们购物心理感受和在环境下的身体感受来开发软件。到如今的各个商场都在运用这个系统,并不断的在普及它。
在国内,如商场智能导视专业品牌-百宝图公司自2003年就致力于智能导视系统的研究,随着大数据的发展,导视系统已经不再只是单纯的导视图,而是想智能化的数字导视发展。商场内的导视系统实现了能够在管理员后台获取前端使用的数据,生成数据报表,如用户点击率统计、设备运行状态统计、周期性数据对比、设备运行状态统计、智能化数据分析报表等来帮助商场管理方能更全面地了解消费者行为趋势,有针对性的加强商场导视运营能力。还有很多像这样的公司在研究这项技术。
所以通过这15年中的导视系统发展,已经不只是单纯的平面图,而是随着跨平台云同步服务的实现,更是开发了触摸屏终端提供给商场内顾客使用、手机扫码就可使用、Web终端给打算购物的人指引给等,并实现这些不同终端之间的数据共享,满足各种各样的人群,做到“功能第一,形式第二”,给时间有限又喜欢实体店购物的购物者们快速的指引方向。在导视系统所需的视觉设计上,首先要和商场内外的结构相对于,休息区,小路都要设计出来。在功能设计上面,要实现商场的定位、商场内店铺的位置导视、店铺广告的发布等等功能,让商场导视系统指示性图标、文字等元能充分指引人们想要去的地方,达到形式与内容的完美统一。 使导视图能够实时显示商场平面图和各商家位置,当消费者选择某个商家时,能够在导视图上给与实时指引。
本系统拟采了用B/S结构,使用bookstrap框架技术实现前端设计,主要包括店铺分布图、店铺搜索、店铺位置信息、商场活动公布等功能;采用轻量级开发的SSM框架进行总体架构搭建,其中的Mybatis框架和Spring结合完成数据库实现,通过SpringMVC进行视图解析。让终端可以实现店铺位置实时更新;让管理员后台可以直接管理,进行增删改查的功能以及通过Echart图表功能实现的数据图更直观的了解商场情况;让店铺自己就可以进行广告发布,方便快捷。也因开成本低,大小商场都能够使用,给消费者提供出一个引导标志完整、清晰、系统、便利的购物环境。

1 系统开发相关技术

1.1 框架技术
本系统主要是使用SSM 框架技术来进行整体布局,该框架是由Spring框架、My Batis框架、Spring MVC框架组成;其中Spring和MyBatis整合主要控制数据访问层,Spring MVC和Spring部分是整合在一起的主要实现表现层[1]。
1.1.1Spring框架
Spring开源框架是一个轻量级开发框架,主要能解决开发中关于系统中业务逻辑层与其他层之间的松耦合性问题,贯穿整个项目,起到承上启下的作用,是一个容器,所有配置都要依靠一个Spring容器来控制[2]。在本系统中会创建相关的配置文件进行使用。
Spring框架的管理体系,Spring是一个对象容器,是项目中对象的“管家”。用于管理项目中的所有对象。Spring还可以管理是图中需要接受处理的对象,还管理了需要执行的业务逻辑,也管理了数据库对象,。在整个框架中,Spring的思想无处不在,正因为这两个思想,得以让这门技术可以控制其他框架,整合在一起,协同工作。框架中配置的配置文件,使各个框架更加精简,不在冗余、复杂。增加了系统的可重用性[3],让后期的维护更加灵活,简单。Spring 的整体结构原理图如图1.1。
在这里插入图片描述

图1.1 关于Spring的整体结构原理图
1.1.2Mybatis框架
Mybatis是数据持久层的一个框架,实现了对jdbc的封装,在使用上相比Hibernate更加灵活。可以控制SQL的编写,让开发者不需要在用额外的去设置数据库连接。本系统为了让整个系统更加灵活,更加方便以后的修改,把可变元素提取了出来,写在db.properties配置文件中,只需在这里填入驱动、连接那个数据库,用户名以及密码即可,不需要进行全局修改,只需在这里进行修改或添加即可。
Mybatis配置编写再mybatis包下的SqlMapConfig.xml中,是关于mybatis框架的全局配置文件,配置了有关mybatis的运行环境等信息[3]。然后本系统中在com.jiaqi.ssm.mapper包中进行XXXmapper.java接口和XXXmapper.xml文件。这两个文件的名字要保持一致。XXXmapper.java中的接口中的方法名和XXXmapper.xml内配置的Id一致。关于Mybatis的原理图以及配置如图1.2。
在这里插入图片描述

图1.2 关于Mybatis的原理图以及配置
1.1.3SpringMVC框架
Spring MVC包含了多种映射器,适配器,解析器,可以自己配置,也可以进行注释功能设施,设施注释后,会自动调用相应的控制器,Spring MVC主要通过配置文件进行工程管理[5],可使用注解或自配置来使用,可以有效的简化代码,提高开发效率。对系统来说可避免错写,缺写的风险,更加安全,更加的便于管理。其中本系统中需要自行配置的有视图解析器,文件上传解析器,时间转换解析器,适配器和映射器是直接自动扫描注解的。关于SpringMvc的架构图分析如图1.3。
在这里插入图片描述

图1.3 关于SpringMvc的架构图
1.2 MySQL数据库
MySQL的管理系统是一个关系型数据库,MySQL的API可以适用于各种编程语言开发,同时支持多线程处理方式,在一般的小型公司和小型项目都会使用MySQL数据库,而在可以配置多台服务器的情况下,数据库也可以抗住百万级并发。用户少的情况下,MySQL是没有问题的,在SQL语句上的优化和表数据上建立的时候进行优化,来提高数据库性能。
其中数据库一共有三层,分别为:数据概念层、数据物理层和数据用户层。这三层结构分别是从三个角度介绍数据库[6]。物理数据层是用来保存数据库实际存在的,概念数据层用来展示数据库里面各个数据的关系和联系,用户数据层是就是可以让用户知道和使用的数据。
1.3前端技术
1.3.1ECharts图表技术
ECharts 是一个使用 JavaScript 技术来进行控制的开源可视化库,涵盖各种各样的图表,满足各个行业需求的图表功能。ECharts 有着丰富的可视化图表,一般使用的都是动态折线图、数据柱状图、分布散点图、饼状图等,对地理数据可视化的有普通地图、热力地图等,其交互式数据模型的深度分析能力,给使用者提供了很大的便利,主要的交互组件有图例组件、视觉映射组件、数据区域缩放组件等。
在SSM框架中通过在数据表中查找出应得数据,通过集合进行数据存贮,在通过json进行数据传递,来进行动态图表功能。此外还支持输入 TypedArray 格式的数据,实现了多种数据格式自动转换。
1.3.2bookstorp框架技术
Bootstrap框架主要由Html,CSS样式表,按钮图表,JavaScript来进行页面设计,提供了一个具有自适应的栅格系统、不同样式的链接、各种按钮及多样的背景的基本结构的框架。其十几个自定义的 jQuery 插件,可以实现相应式应用技术;以及可以设计出自适应的jsp或者html的前端页面,让前端页面更好看,提高了用户体验;在本系统中结合和jstl,能更好的实现前后台交互管理。
1.4 本章小结
本章描述了导视系统开发中需要应用到的核心技术介绍,包括SSM框架,以及框架是有什么框架组成,MySQL数据库,Bootstrap前端框架, ECharts 图表技术进行了详细的描述。

2 系统需求分析

2.1 系统需求实现目标
本系统针对商场导视系统开发的一款系统,通过在各个商场导视图,指引标识的观察,对往来人群的意见搜索,以及对店铺对商场铺位的想法,最后总结出本系统的开发需求[7]。本系统主要会进行三个部分的系统设计,每个部分一个系统平台,以及满足不同的需求功能,提供给不同的人群使用。确保在保护用户安全的情况下,尽可能的满足不同的用户。
利用本系统进行商场导视工作能有效的提高工作效率,工作人员能彻底摆脱传统的工作方式,实现现代化、网络化的管理。为了满足人们的商场购物体验,把传统的导视牌替换成显示屏,并在上面进行动态的导视能力和商铺展示[8]。所以针对当前存在的此种迫切需求开发了基于SSM框架的商场导视系统。
2.2 功能需求
2.2.1消费者触屏端导视系统
显示在商场内的显示屏幕上,不需要用户进行注册与登陆,面向的主要人群是商场内的顾客,对其进行导视指引。主屏幕上会显示不同楼层的导视图,网页设计结构是在左侧显示各个楼层的小图标,然后中间显示顾客所点击楼层的具体导视图,左侧显示顾客想要查找的店铺信息,以及位置信息,当前店铺是否有什么活动,可以吸引顾客的注意力,并进行购物;可以通过信息知道这是什么类型的店铺,让人们有更多的选择。顾客也可以通过点击导视图上的店铺名称,然后会显示店铺放大图,可以更好的看清楚店铺位置。
通过前台导视系统的导航栏,可以点击店铺介绍来对店铺信息的获取,点击后会跳转到店铺信息页面,会有一个一个小方块显示店铺信息,会显示店铺名称,位置,店铺图片,店铺介绍,店铺活动等信息。同样可以通过导航栏上的搜索找到自己准备去的店铺,可以进行字段查询,输入模糊条件,就可以快速获取信息。如果商场内没有顾客想去的店铺,或者在本店铺没有买到心意的商品,但是还是想去相同代言的品牌名店,可以在导航栏上面的同款店铺上点击,进入到地图导航页面中,输入店铺,会给我们显示附近的所以同名店铺信息,并显示最近导视路线。可以通过查询找到最近优惠的店铺,通过不同类型找到心仪的店铺,并获取位置。
2.2.2店铺员工应用系统
商铺员工应用系统是对商场内驻入店铺开发的平台,如果有店主想在此商场内开店,首先需要联系商场管理员,然后进行协商,一起都协调好之后,管理员会要求店主注册这个系统,然后添加账号,密码,店铺名称的信息。然后登录进入软件时,如果账号密码输入错误,就会返回当前页并显示账号密码错误,并且回显输入的信息。
登录之后对店铺详细信息进行补充添加,并且完善店铺其分类信息,方便管理员分析与管理;还可以进行密码的重置,头像的替换的功能,要是店主想在这个系统上推销自己的店铺,可以进行信息发布,上传店铺图片,信息,主题,店铺优惠活动等信息。还可以进行发布信息的修改和删除管理。
2.2.3商场导视管理员系统
管理员系统是对整个商场的管理,可以是一个也可以是多个商场店铺内部位置信息的管理。后台修改之后,前台就会显示修改后的店铺位置,不需要去商场更换导视图,只要后台进行更改。如果某个店铺想在商场内驻入,首先进行店铺注册,然后把店铺信息添加完善,后台管理员系统会显示这些信息,管理员会在其状态添加开启,并在店铺位置管理页面进行添加,然后前台就会显示该店铺,占住这个位置,以便数据调用;如果某个店铺想关掉店铺,进过协商,管理员会把其店铺状态改为关闭,并且删除掉店铺位置信息,空出这个店铺位置。
管理员系统在店铺位置信息页面中,会显示所有位置信息的位置,如果该位置有人想要进行开店,就添加入该店铺的店名,连接店铺信息表,前台导视图上就会显示该店铺名称,可供顾客搜索,信息查看。还有对关闭店铺位置进行修改。
还有店铺图表,图表为饼状图和柱状图一起分析,饼状图会显示店铺开启,关闭,空余所占比例,柱状图更直观的看到都有几家是开启,关闭,空闲的。还有的对店铺种类分布的饼状图和柱状图分析,如服饰店占比,餐饮类占比,来了解自己商场包含的店铺种类对比,来对没有店铺,或者占比小的店铺进行招商,让自己商场更加多元化,种类丰富。即能降低运营成本,又能增加商场监控能力[9]。
2.3 导视系统工作流程
首先店主要注册账号,然后执行登录操作,不登录不能操作;登录后要把店铺的详细信息完善,可以后期修改店铺详细信息,成功则执行,失败则重新操作;还可以进行店铺信息发布,成功则执行,失败则重新操作。如果不在进行操作,点击退出,就会退出该账户,信息缓存清除,关于店铺用户系统工作流程图如图2.1。
在这里插入图片描述

图2.1 关于店铺用户系统工作流程图
然后是消费者触摸展示屏端的平台,顾客不需要登录,可直接查询店铺信息,不查询显示静态主页,查询输入查询店铺信息,存在显示店铺信息,不存在返回当前页面,显示不存在该店铺。关于顾客平台工作流程图分析如图2.2。
在这里插入图片描述

图2.2 关于顾客平台工作流程图
然后是管理员后台管理角色,管理员登录后可以进行各大模块的管理。可以对店铺详细信息进行查看所以信息的操作、添加店铺的详细信息的操作、修改店铺详细信息的操作、删除店铺详细信息的操作,其中修改删除可以进行批量操作;还有对商场内导视信息中店铺的具体位置的添加操作,当该位置换了店铺后可进行修改店铺位置操作,删除只删除店铺信息,不删除位置,也可以进行高级模糊查询。还有对用户信息的管理,如用户的注册信息,可先进行添加在注册,或者先注册在添加都可以;用户发布的信息,可对发布的的信息进行删除,把不符合标准的信息去掉;若该用户已经不存在,可进行删除,当用户无法自行修改时,可通过管理员权限进行修改,若信息太多事,通过查找功能,快速找到指定目标。关于管理员工作流程图如图2.3。
在这里插入图片描述

图2.3 关于管理员工作流程图
2.4 用例分析
2.4.1前台顾客导视功能
面对顾客的前台导视系统功能有,屏幕上显示楼层的导视图,查找的店铺位置信息;顾客也可以通过点击导视图上的店铺名称,然后会放大店铺导视图,并在右侧显示店铺的相关信息;点击店铺介绍,会显示店铺信息;输入店铺,会显示附近的所以同名店铺信息,并显示导视路线,店铺互动信息等信息。消费者用户导视系统用例图如图2.4。
在这里插入图片描述

图2.4 消费者用户导视系统用例图
2.4.2店铺用户使用功能
商铺用户应用系统,店主注册系统,然后登录进入软件之后店主需要添加店铺信息,可以修改。可在系统平台上推销自己的店铺,也可以对发布过的信息进行内容修改,也可以把发布过的信息进行删除。店铺用户导视系统用例图如图2.5。
在这里插入图片描述

图2.5 店铺用户导视系统用例图
2.4.3管理员后台管理功能
能对店铺信息进行修改,前台就会显示修改后的店铺位置;店铺用户注册后,然后管理用户信息,可进行删除,修改,查询功能;在店铺位置信息页面中,会显示所有位置信息的位置,可对店铺导视位置信息进行新注册店铺的位置添加,如果该店铺不在开店,对位置内的信息名进行修改为空余,不可删除,可以通过模糊查询进行查找店铺;饼状图可视化数据,显示店铺状态比例,店铺种类情况的分布占比。涉及的管理员的导视系统用例图如图2.6。
在这里插入图片描述

图2.6 管理员的导视系统用例图
2.5 本章小结
本章讲述了商城导视系统的需求分析及其用例描述,系统根据不同人群需求,设计了满足顾客用户、店铺用户、管理员的功能。又因该系统面向人群不同,环境不同,根据各自的后台管理权限,进行不同操作等工作流程的解析。

3 系统的设计

3.1 系统的总体设计
3.1.1系统的功能结构设计
在这里插入图片描述

图3.1 导视系统的总体功能结构图
商场导视系统一共分为三个大的模块,第一个是面对顾客用户的平台,不需要注册就可使用功能;第二个是面对店铺用户的,需要先注册添加信息,在使用功能;第三个是面对商场管理员的,需要注册,在对商场内导视系统进行管理。导视系统的总体功能结构图如图3.1。
3.1.2软件的体系架构
传统架构的话只需要创建一个工程即可。系统耦合性高,一个模块出现问题,其他模块都无法正常使用。系统扩展性差,添加新功能时,会对现有系统产生破坏。所以优先选择的分布式架构,分布式架构有以下几个优点:把系统按照系统模块拆分成多个独立的子系统。系统之间弱耦合[10],系统之间扩展性好,有新功能时,添加子模块即可,不会对原有系统产生破坏,大大增强系统可扩展性。部署灵活方便,互联网应用需要进行分布式部署,使用这种架构,可以灵活的进行分布式部署。
导视系统体系介绍,第一层表现层设计,包括用户方面使用的设备、硬件、软件、浏览器等,通常分为前台页面JSP、Bootstrap等可以直观的看到的显示页面、显示的数据情况;第二层控制层,这一层主要是将多种关系分开控制、提高功能强度,增强独立性;第三层业务逻辑层,对各种管理服务提供了每个功能所运用的逻辑思维;第四层数据访问层,主要管理数据库访问和应用以及持久化框架;第五层存储层,大部分程序工作需要存储的器访问,其作用主要是将系统所有经过处理的信息最终存储的位置。同时本系统结合了MVC设计模型,用户通过请求控制层传到Model层进行数据处理[12],传给服务器端操作,最后通过View层来响应用户的操作。
3.1.3安全性的总体设计
商场导视系统会系统开发涉及到了三个层面包括最高层为用户层、第二层为系统层、最后一层为社会层。基于以这三个层面,本系统对安全性做了总体设计。第一层包括保护用户的各类物质安全,为此系统使用高安全性的数据库,避开了安全性较差的一些数据存储工具;第二层系统层包括对系统本身的安全保障等,对非用户本身的安全采取了进一步的防御措施,第三层社会层,根据本系统的社会背景来说,系统很容易受到社会舆论的攻击,从而误导大众集体,所以本系统要保证内容的准确真实。
3.1.4框架使用设计
主要框架是SSM框架,首先创建Web项目,然后把需要的jar包放入lib下,导入包web-inf下也要导入,否则不能达到统一,准备的jar包和服务器不能不兼容,要不然无法调用Spring监听[13]。然后配置配置文件,首先是配置Spring和Mybatis的整合包,放在config下的mybatis包下,名字为SqlMapConfig.xml;在配置SpringMvc整合文件,放在config下的spring包下,创建四个文件,分别是applicationContext-dao.xml,application Context-service.xml,applicationContext-trancaction.xml,springmvc.xml[13],虽然分开写,但是管理还是一个spring容器,只是为了让配置文件清晰。
然后在分为controller,mapper,po,service四个包,进行各个层的管理。其中为了使整个项目的底层代码更清晰,mapper和po可以使用逆向工程来创建基础包,然后在根据需求创建扩展类和包装类[15]。service包内主要进行逻辑处理,主要写接口,其还有个包serviceImpl进行方法的具体实现。如返回的数据类型是否是controller需要的类型,传入的数据是否可以存储在数据库里等。
3.2 系统详细设计
3.2.1数据库设计
关于本系统的数据库设计,管理员信息独立,用户信息与店铺名字关联,店铺信息与店铺名字关联,信息发布与店铺名称关联,由管理员进行管理或者自己修改,管理员对所有信息有删除权限。如图3.3。
在这里插入图片描述

图3.3 导视系统的实体关系图
3.2.2数据表设计
本系统涉及的核心数据表共有七个,用户涉及的表,包括用户注册表,用户的店铺信息表,用户的店铺分类信息表,用户发布的公告消息表;管理员涉及的表有管理员注册,公告消息表,以及对所有表的管理。
如表3.1所示为店铺分类信息表。表中有5个字段,2个整型字段,3个字符中类型,主要储存店铺描述信息,店铺类型信息,店铺名称信息,店铺楼层数信息。由用户添加,管理员进行管理。
表3.1 店铺分类信息表
字段名 设置的数据类型 约束条件 备注名称
stores_fenlei_id Int(11) 主键,唯一键非空,自增长 店铺分类Id
store_fenlei_address VARCHAR(255) 店铺分类描述
store_fenlei_name VARCHAR(255) 非空 店铺分类名字
store_name VARCHAR(255) 非空 店铺的名字
store_fenlei_num Int(11) 非空 楼层数
如表3.2所示为店铺位置信息表。表中有7个字段,3个整型字段,4个字符中类型,主要储存店铺导视图中的序号,坐标,指引文字描述,店铺名称,店铺图片,几号楼的几楼数。由管理员进行管理。
表3.2 店铺位置信息表
字段名 设置的数据类型 约束条件 备注名称
store_index_id Int(11) 主键约束,自增长
唯一键,非空 店铺位置的id号
store_num Int(11) 非空 序号
store_index VARCHAR(255) 非空 店铺位置坐标
store_address VARCHAR(255) 文字描述
store_name VARCHAR(255) 店铺名
store_img VARCHAR(255) 店铺图片
shop_loucheng Int(11) 非空 所处具体楼层数
如表3.3所示为店铺信息表。表中有7个字段,1个整型字段,3个字符中类型,2个日期字段,一个双精度浮点型字段。主要储存店铺一写基本信息。由用户提供数据,管理员进行管理。
表3.3 店铺信息表
字段名 设置的数据类型 约束条件 备注名称
store_id Int(11) 主键,唯一键,自增长,非空 店铺的id号
store_user_name VARCHAR(255) 非空 店铺店主名称
store_state VARCHAR(255) 店铺当前状态
store_start_date Date 非空 开店日期
store_end_date Date 租赁到那日
store_name VARCHAR(255) 非空 店铺名称
store_rent Double 非空 店铺每月的租金
如表3.4所示为管理员发布信息表。表中有4个字段,1个整型字段,2个字符中类型,1个日期字段。主要储存管理员发布的内容。由管理员操作,其中时间获取的是当前时间。
表3.4 管理员发布信息表
字段名 设置的数据类型 约束条件 备注名称
id Int(11) 主键,自增长,唯一键,非空
shop_title VARCHAR(255) 非空 标题
shop_text VARCHAR(255) 非空 内容
shop_date Date 非空 时间
如表3.5所示为管理员注册表。表中有4个字段,1个整型字段,3个字符中类型。主要储存管理员登录需要的账号,密码,以及所处商场名称。由管理员先注册在进行查询登录使用。
表3.5 管理员注册表
字段名 设置的数据类型 约束条件 备注名称
shop_register_id Int(11) 主键约束,自增长
唯一键,非空 管理员注册的工号
shop_password VARCHAR(255) 非空 管理员登录密码
shop_name VARCHAR(255) 非空 商场名字
shop_username VARCHAR(255) 非空 管理员名字
如表3.6所示为用户注册表。表中有5个字段,2个整型字段,3个字符中类型。主要储存商铺用户登录需要的账号,密码,以及所处商铺名称。由用户先注册在进行查询登录系统使用。
表3.6 用户注册表
字段名 设置的数据类型 约束条件 备注名称
register_id Int(11) 主键,自增长,唯一键,非空 注册的id
register_num Int(11) 非空 注册的工号
password VARCHAR(255) 非空 登录密码
store_name VARCHAR(255) 非空 店铺名字
img VARCHAR(255) 图片
如表3.7所示为用户发布信息表。表中有7个字段,1个整型字段,4个字符中类型,1个日期字段。主要储存用户发布的内容。由用户发布,以及自己删除修改时调用该表使用,其中时间获取的是当前时间。
表3.7 发布信息表
字段名 设置的数据类型 约束条件 备注名称
message_id Int(11) 主键约束,自增长,
唯一键,非空 信息发布Id
message_img VARCHAR(255) 非空 发布信息的图片
message_date Date 非空 发布的时间
message_text VARCHAR(255) 非空 文字介绍
message_title VARCHAR(255) 非空 发布信息的标题
store_name VARCHAR(255) 非空 店铺名称
3.2.3功能模块的详细设计
(1)查找模块
时序描述:在查找信息管理页中,输入查找信息,然后点击对应标题内的链接跳转到findAllStoresInfos.action,转发到selectStore.jsp,然后实现会出提示成功显示查找到的信息,或者失败回到本页,由于回显可看到输入的信息。查找时序图如图3.1。
在这里插入图片描述

图3.1 查找时序图
(2)后台添加模块
时序描述:在店铺添加信息管理页中,输入添加信息,然后点击对应标题内的链接跳转到addStore.action,由findAllStoresInfos.action转发到storeTables.jsp,然后实现会提示成功或者失败本页回传,查看错误信息。添加时序图如图3.2。
在这里插入图片描述

图3.2 添加时序图
(3)删除模块
时序描述:在删除信息管理页中,选择删除信息Id,然后点击对应标题内的链接跳转到mutiDelectStore.action,由getStoreInfo.action转发到storeTables.jsp,然后实现会提示成功或者失败,失败则回传本页继续删除。删除时序图如图3.3。
在这里插入图片描述

图3.3 删除时序图
(4)修改模块
时序描述:在修改信息管理页中,选择修改信息Id,然后点击对应标题内的链接跳转到getMutimodifyStore.action,由getStoreInfo.action转发到storeTables.jsp,然后实现会提示成功或者失败,失败则回传本页,再继续修改。修改时序图如图3.4。
在这里插入图片描述

图3.4 修改时序图
(5)图表模块
时序描述:在图表统计信息管理页,只要点击对应标题内的链接跳转到queryForList1.action,返回json数据到storechart.jsp,然后实现会提示图表,失败一直显示加载动画。图表时序图如图3.5 。
在这里插入图片描述

图3.5 图表时序图
3.3 本章小结
本章主要讲解了导视系统设计理念、数据表结构设计,这是后续实现的基础,其中将体系结构从各方面进行了仔细划分,包括安全设计、详细结构设计、核心功能通过图、时序图、表等相关辅助进行了详细的描述。

4 导视系统的实现

4.1 开发环境
服务器硬件方面CPU要求i5以上;内存要求不小于512MB:硬盘要求不小于40G;Web服务器要求使用Firefox57.0或以上[16]。系统开发过程中所处的软件环境如下:Tomcat9.0服务器、Google Chrome浏览器或者Firefox浏览器 、Eclipse 2019 03开发工具、MySql数据库。运行环境:Jdk9.0,Jre9.0。所需的jar包spring是4.0.9、jstl-1.2、mybatis-spring-1.2.2、其他兼容[11]。
4.2 开发规范
4.2.1变量命名
变量的命名要达到格式统一。对于导视系统中,如store_name是指店铺名称。准确是如果起名是name,远没有store_name意义丰富,采用骆驼命名法则,变量中单词之间不能使用特殊符号分开,要通过单词首字母来大写进行分割,也尽可能少的写标识符。省略元音的缩写方式不要使用,以防后期修改看不懂奇怪的缩写。包名所有字母全小写,包括controller。对于类的命名首字母大写。关于类、 属性名、方法名不能以无意义符号命名,所有命名中不建议使用_,尤其不建议使用做名称的开头。
4.2.2系统方法名规范
在本系统中所有方法的方法名都设置为首字母小写,如 addXxxXxx(),不要使用/或特殊符号。在com.jiaqi.ssm.mapper包内的接口文件中的方法,添加方法用insertXxx(),删除方法用deleteXxx(),修改方法用updateXxx(),查找方法用selectXxx()。在com.jiaqi.ssm.service包下的方法名添加方法用addXxx(),删除方法用delXxx(),修改方法用modifyXxx(),查找方法用select/findXxx()。com.jiaqi.ssm.controller包中的方法名都根据具体功能进行命名。
4.2.3注释规范
注释的规范是宜少二精原则,不宜多而滥,结构清晰,如果代码混乱,再多的注释都不能弥补。不能正确表达代码意义的注释,会损害可读性,不要乱写。过于详细的注释,对简单的代码,显得啰嗦[17]。注释要和代码同步,过多的注释会成为开发的负担注释不是用来管理代码版本的,如果有代码不要了,直接删除,不要注释掉,否则以后不知道那段注释掉的代码该不该删除。
4.3 系统功能模块实现
4.3.1登录模块
用户打开浏览器,访问本系统,浏览器中显示带登录界面的主页面。用户输入登录名和密码后,提交页面。系统验证用户的登录:若登录名和密码不正确,系统显示“登录名或密码错误”,用户可再次登录;若登录名和密码正确,用户登录成功,系统判断该用户是管理员还是普通用户,再显示主页面[19]。如图4.1。
在这里插入图片描述

图4.1 登录功能界面截图
#用户登录界面核心功能的核心代码:
@RequestMapping(“/login.action”)//设置访问路径
public ModelAndView login(UserCustom userCustom) {
ModelAndView mv = new ModelAndView();//创建视图
try {
List login = loginService.login(userCustom);
mv.addObject(“login”, login);
mv.setViewName(“users/userIndex”);//视图跳转
} catch (Exception e) {
e.printStackTrace();
}
return mv;
}
4.3.2发布信息模块
登录后可发布信息,发布信息包括店铺名称,发布信息的主题,图片上传,信息发布的文字信息,发布结束后,还可以对发布的信息进行修改和删除[20],功能页面如图4.2。
在这里插入图片描述

图4.2 发布信息功能界面截图
//发布信息功能核心功能的核心代码:
@RequestMapping(“/addMessage.action”)
public String addMessage(Messages messages,MultipartFile messageImgs) throws Exception {
//上传图片
// 1 获得从前台传递过来的数据 参数绑定,就获得了
// 获取图片最原始位置
String original = messageImgs.getOriginalFilename();
if (messageImgs != null && original != null && original.length() > 0) {
// 2 准备图片文件,
// 第一步: 服务器前缀名称
String picServerPath = “F:\pic\”;
// 第二步,文件名,要不重名,随机生成
String picName = UUID.randomUUID().toString();
// 第三步,后缀名
String subName = original.substring(original.lastIndexOf(“.”));
File file = new File(picServerPath + picName + subName);
// 3 把获得的文件数据,存储到图片服务器
// 把从前台传递过来的数据 再次传递到file文件对象里
messageImgs.transferTo(file);
// 设置pic属性的值
messages.setMessageImg(picName + subName);
}
messagesService.addMessage(messages);
return “forward:findAllMessagesInfo2.action”;
}
4.3.3管理员店铺核心模块
管理员店铺管理页,可对店铺信息进行编辑,本页中会有查询功能,删除功能,修改功能,操作方便。删除功能,可单个删除,或者选择复选框进行多条信息删除,或者全选进行删除,如图4.3。
在这里插入图片描述

图4.3 删除功能界面截图
//批量删除的核心代码
@RequestMapping(“/mutiDelectStore”)
public String mutiDelectStore(int[] storeIds) throws Exception {
for (int i = 0; i < storeIds.length; i++) {//循环进行逐条信息的删除
storesInfoService.mutiDelStore(storeIds[i]); //调用修改方法,传递修改数据
}
return “forward:getStoreInfo.action”;
}
管理员店铺信息管理页,可对店铺信息进行查询功能。查询功能可单个条件或者多个条件一起查询,都采用高级模糊查询[20],可输入店主姓名,店铺名称,店铺状态信息的关键字或者全称进行查询。如图4.4。
在这里插入图片描述

图4.4 查找界面截图
//查找的核心代码



and stores_info.store_id like ‘%${storesInfoCustom.storeId}%’




select * from stores_info

管理员店铺信息管理页,可对店铺信息进行修改功能,通过进入修改页面,可进行批量信息的修改,除id外都可进行修改,其中状态只能是开启,关闭,空闲三个状态。如图4.5。
在这里插入图片描述

图4.5 管理员修改功能界面截图
//修改的核心代码
@RequestMapping(“/mutimodifyStores.action”)
public String mutimodifyStores(StoresInfoVo storesInfoVo) throws Exception {
for (StoresInfoCustom storesInfo : storesInfoVo.getList()) { //循环进行逐条信息的修改
storesInfoService.mutimodifyStores(storesInfo);//调用修改方法,传递修改数据
}
return “forward:getStoreInfo.action”;
}
4.3.4导视图模块
导视图模块不需要登录,是直接显示在屏幕上,显示不同楼层的导视图,屏幕结构是在左侧显示楼层小图标,然后中间显示顾客所点击楼层的具体导视图,左侧显示顾客想要查找的店铺信息,以及位置信息。顾客通过点击导视图上的店铺名称[21],然后右侧会显示店铺数据。导视图功能界面截图如图4.6。
在这里插入图片描述

图4.6 导视图功能界面截图
#导视图查询显示界面核心功能的核心代码:
@RequestMapping(value = “/getFindStore”, method = { RequestMethod.POST, RequestMethod.GET })
Public ModelAndView getFindStore(Model model,@ModelAttribute(“voinfo”)StoresInfoVo storesInfoVo)[22] {
ModelAndView mv = new ModelAndView()[23];
try {
List storesInfoList = storesInfoService.findAllStoresInfo(storesInfoVo);
mv.addObject(“storesInfoList”,storesInfoList);//把数据存储到ModelAndView中
mv.setViewName(“stores/selectStore”);
} catch (Exception e) {
e.printStackTrace();
}
return mv;//返回视图
}
4.3.5图表模块
图表模块功能,是方便管理员分析商场的动态消息的功能,以饼状图和柱状图分析店铺当前,都有哪些是开启,哪些是关闭的,哪些是空闲的店铺,数据是动态的,是Ajax和json数据管理的,所以不需要进行重新加载,可自动加载[24]。如图4.7。
在这里插入图片描述

图4.7 图表功能界面截图
#导视图图表模块核心功能的核心代码:

select store_state,count(store_state) as storenum from stores_info group by store_state
4.4 本章小结 本章主要介绍了系统开发系统、应用系统的环境、开发项目时所要求的开发规范、项目使用时的操作方法以及几个主要功能的主要实现方法,其中实现效果,通过项目抓图,将完成效果如实地反映出来;通过核心代码,将项目核心准确地体现出来。

5 导视系统测试

5.1 测试计划
本系统的测试计划将分为三个大阶段展开,为保证系统测试的准确性,在每个阶段中抽取出最具代表性的模块进行测试[25]。在管理员部分,查找,删除,添加,修改店铺信息;在图表方面,进行了对店铺状态的饼状图和柱状图的直观动态分析测试。在用户部分进行公告消息发布测试。在消费者用户使用导视图进行测试。
5.2 测试用例
添加店铺测试前状态和所要添加的信息,其中添加信息为店主为张三,店铺状态为开启,开店日期2019-02-02,歇业日期2019-02-02,店铺名称为甜品店,租金为2000.0,如图5.1。查找信息根据添加测试需求进行查询。
在这里插入图片描述

图5.1 添加前测试截图
删除店铺测试,测试批量删除,其中批量删除信息是删除第二,三,四,五条的店铺信息;删除前测试截图如图5.2。
在这里插入图片描述

图5.2 删除前测试截图
修改测试是,修改用户ID为1的信息,店主李四,店铺状态开启,开店日期2011-03-03,歇业日期2020-03-03,店铺名称李四男装,租金2000.0。涉及的图片展示有修改前测试截图如图5.3。
在这里插入图片描述

图5.3 修改前测试截图
在用户部分进行公告消息发布测试,发布信息,添加图片,自动显示店铺名称为春天服饰,公告消息的主题为服装,文字介绍为文字介绍33。用户信息发布测试前截图如图5.4。
在这里插入图片描述

图5.4 用户信息发布测试前截图
在消费者用户使用导视图进行测试,用户点击周黑鸭的店铺,右侧显示对应的店铺名称,店铺位置,店铺互动等信息。左侧是对不同楼层的导视图选择。导视图测试前截图如图5.5。
在这里插入图片描述

图5.5 导视图测试前截图
5.3 测试结果
在这里插入图片描述

图5.6 删除修改测试结果截图
在这里插入图片描述

图5.7 添加查找测试结果截图图在这里插入图片描述
5.8 图表测试结果截图
测试结果是管理员管理修改,添加,删除,查询信息维护测试功能成立,前台触发管理效果完整准确,可以正确显示相应信息,操作后,数据信息能成功准确更新,并成功返回[26]。删除修改测试结果截图如图5.6。添加查找测试结果截图如图5.7。图表测试结果截图如图5.8。
在这里插入图片描述

图5.9 用户公告信息发布测试结果截图
测试结果是用户信息发布测试功能成立,前台触发管理效果完整准确,可以正确显示相应信息,操作后,数据信息能成功准确更新,并成功返回。用户公告信息发布测试结果截图如图5.9。
在这里插入图片描述

图5.10 导视图测试结果截图
测试结果是消费者用户导视信息查看和店铺信息位置查找测试功能成立,前台触发管理效果完整准确,可以正确显示相应信息,操作后,数据信息能成功准确更新,并成功返回。导视图测试结果截图如图5.10。
5.4 本章小结
本章主要讲述了实现功能后对功能进行测试操作,以测试用例的形式进行展示,其中测试功能为随机抽取的三大个功能,分别经过此次测试,所有功能都以测试成功,未展示功能也调试成功。

结 论

通过以上分析,在整个系统中导视图管理员后台管理是主要部分,对用户们的使用起到至关重要的作用,这有这边能实现实时更新,用户们才能使用功能,尤其是属于消费者的顾客用户,如果后台不更新数据,客户单就不会看到更新的信息,更可能是看不到信息,所以商场导视功能又回到了最原始的状态。所以,本文根据对市场需求的分析,顾客的意见反馈,设计了升级版的关于商场导视的系统。在文中首先是进行了系统开大背景和意义进行了讲述。然后分析了构建导视系统所需要解决的一些问题,然后根据需求设计了一系列需要开发的功能,并分好模块,详细的设计了框架结构,开发中需要的名字的命名方式标准,达到统一,写好需求文档,方便对系统开发。现在导视系统已经具备基本的功能,可以初步满足商城对于导视的业务需求。
在进行系统的设计时,充分的考虑到不同用户的需求分成了面对不同用户的模块,又考虑到系统开发成本上,进行了低成本设计。在结构上,使用的轻量级框架SSM框架,可以使系统更好的开发,更好的后续开发,更好的维护,安全上也高等优点。随后设计完成的系统,用户体验感觉觉得很好和符合现在人们的心理需求。
本系统的设计与实现有效的提高了工作人员的管理效率,控制了成本,增强了人们的导视理解能力。由于人们的需求是不断加强的,本文系统还会继续完善更多的功能,让系统更加多元化。

致 谢

在这里我要感谢的我指导老师王飞老师和陈佳美老师,是他们在我毕业设计期间对我的悉心指导才让我顺利开发出我的毕业项目,之后又知道我进行修改论文书写的格式,还是最后的修改定稿,每一个过程都有他们的身影,以及他们不分昼夜的给我解决困惑。老师知识储备渊博,工作作风严谨以及具有足够的耐心来对待我,既丰富了我的思想世界,又从品德上教导了我如何做一个有价值的人。感谢同学们大学四年来同甘共苦,共同经历了每一次的考试备战,一起奋斗。感谢朋友对我的爱和包容,不离不弃,无论生活中遇到怎样的困难总是有人默默地陪伴我,鼓励我。
四年的时间转眼即逝,看着四年前我们青涩的照片,回忆拖着行李刚刚步入大学校园的点点滴滴,跟新同学们一起坐在校园的草地上,大家做着自我介绍,从当初的陌生又忐忑到现在的从容又熟悉,一切仿佛还停留在昨天。谁都没有想过四年的时光会这么快走过,转眼间到了快要分别的时候,太多的不舍化为我们迈向新战场的动力和勇气。
我永远也不会忘记我的母校沈阳城市大学给予我的一切,智慧、知识、品质,更多的是爱与温暖。让我从懵懂幼稚成长为一个成熟的人。至此,我的大学生活也已画上了一个圆满的句号,而母校的校训:“我行我能”,我更将时刻铭记于心,把它作为我未来漫漫人生路上的鲜明旗帜。

参考文献

[1]冯博, 朱蔷晖. 程序设计教程[M]. 北京: 清华大学出版社, 2005:58-76
[2]刘中兵. 开发者突击: JavaWeb主流框架整合开发:J2EE+Struts + Hibernate+ Spring[M]. 北京:电子工业出版社, 2008
[3]徐笑, 高建华. 基于SpringMVC及MyBatis的Web应用框架研究[J]. 微型电信应用, 3012, 28(7)1-4
[4]Spring+MyBatis企业应用实战[M]. 电子工业出版社.疯狂软件, 2017.
[5]张宇, 王映辉, 张翔南. 基于Spring的MVC框架设计与注的实现[J]. 计算机工程, 2010,36(4):59-62
[6]汪云飞. JavaEE开发的颠覆者[M]. 北京: 电子工业出版社, 2016
[7]天津滨海迅腾科技集团有限公司. Java Web应用程序开发[M]. 天津: 南开大学出版社, 2017
[8]张宇航. 导视系统的人性化设计[D]. 沈阳理工大学, 2009年
[9]王丽梅, 王蓉, 姜昕. 商业空间中的导视系统设计探析[J]. 包装工程, 201 0年02期
[10]张伟, 李卫斌, 李磊. 基于Spring框架的信息系统模型层的设计与实现[J]. 咸阳师范学院学报, 2008年02期
[11]Seyyed Ali Noorhosseini,Afshin Soltani,Hossein Ajamnoroozi. Retraction notice to “Simulating peanut ( Arachis hypogaea L.) growth and yield with the use of the simple simulation model (SSM)” [Comput. Electron. Agric. 145 (2018) 63–75][J]. Computers and Electronics in Agriculture,2020,173、
[12]Automatic Extraction of Dependencies between Web Components and Database Resources in Java Web Applications. 2019, 17(2): 149-160
[13]Zhou Fang,Weibin Xi,Weiwei Xu,Xufeng Liu,Jing Pan,Xiao Yu,Kun Lu. A Java web application based MDSplus data analysis and real-time monitoring system for EAST[J]. Fusion Engineering and Design,2019,147
[14]Karsten Fennig, Marc Schröder, Axel Andersson, et al. A Fundamental Climate Data Record of SMMR, SSM/I, and SSMIS brightness temperatures. 2020, 12(1):647-681
[15]Mohamadali Yaghoubi,Ali Maroosi. Simulation and modeling of an improved multi-verse optimization algorithm for QoS-aware web service composition with service level agreements in the cloud environments[J]. Simulation Modelling Practice and Theory,2020,103
[16]Pedro Pinheiro,José Carlos Viana,Márcio Ribeiro,Leo Fernandes,Fabiano Ferrari,Rohit Gheyi,Baldoino Fonseca. Mutating code annotations: An empirical evaluation on Java and C# programs[J]. Science of Computer Programming,2020,191
[17]郭妍旭, 张波. 框架技术在软件开发中的研究与实践[J]. 辽宁工学院学报, 2006(06).
[18]李娟. 基于框架技术的商务应用系统的开发[J]. 计算机与现代化, 2010(01)
[19]贺雪梅. web应用开发中的SSM框架设计[J]. 电子世界, 2019 (01)
[20]JENNIFER KYRNIN, 姚军. BOOTSTRAP入门经典[M]. 北京:人民邮电出版社, 2016.12
[21]石磊. 21世纪数据挖掘技术与传统挖掘技术的相关研究[J]. 信息技术与信息化, 2010(08)
[22]王茹重. Java网络程序设计项目教程校园通系统的实现[M]. 北京:中国人民大学出版社, 2010.05
[23]牛德雄. Java EE(SSH框架)软件项目开发案例教程[M]. 北京:电子工业出版社, 2016.04
[24]陈张. 浅析struts2和springMVC的异同[M]. 数码世界, 2017
[25]刘永胜. 基于改进抗差方法的智能手机RTK定位测试及分析[C]. 中国卫星导航系统管理办公室学术交流中心. 第十一届中国卫星导航年会论文集——S01卫星导航行业应用. 中国卫星导航系统管理办公室学术交流中心: 中科北斗汇(北京)科技有限公司, 2020:73-77
[26]武新波. 北斗车载终端云测试系统设计与实现[C]. 中国卫星导航系统管理办公室学术交流中心.第十一届中国卫星导航年会论文集——S08 测试评估技术.中国卫星导航系统管理办公室学术交流中心: 中科北斗汇(北京)科技有限公司, 2020:82-85

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ThreadLocal源码分析

简介 ThreadLocal是JDK提供的&#xff0c;支持线程本地变量。也就是说&#xff0c;如果我们创建了一个ThreadLocal变量&#xff0c;则访问这个变量的每个线程都会有这个变量的一个本地副本。如果多个线程同时对这个变量进行读写操作时&#xff0c;实际上操作的是线程自己本地内…

内存映射实现父子进程通信

创建内存映射区&#xff1a; void *mmap(void *addr ,size_t length,int prot,int flags,int fd,off_t offset); 参数&#xff1a; addr 指定映射区的首地址。通常NULL&#xff0c;表示让系统自动分配length 共享内存映射区的长度prot 共享内存的读写属性 PROT_READ PR…

电脑资料管理软件(5个高效批量管理电脑资料的方法)

企业电脑资料管理是企业一大难题&#xff0c;为什么这样说&#xff1f; 首先&#xff0c;企业电脑资料的数量庞大且种类繁多。 其次&#xff0c;电脑资料的安全性和保密性要求高。 再者&#xff0c;电脑资料的管理涉及到多个部门和员工的协作。 ...... 针对此类情况很多企业…

基于深度视觉实现机械臂对目标的识别与定位

机械臂手眼标定 根据相机和机械臂的安装方式不同&#xff0c;手眼标定分为眼在手上和眼在手外两种方式&#xff0c;双臂机器人的相机和机械臂基座的相对位置固定&#xff0c;所以应该采用眼在手外的手眼标定方式。 后续的视觉引导机械臂抓取测试实验基于本实验实现&#xf…

Chatgpt异常10秒恢复大法--亲测有效

Chatgpt异常10秒恢复大法--亲测有效! 这几天有没有朋友GPT界面正常&#xff0c;打字不回复?各种恼(我本人)今天偶然看到群友讨论&#xff0c;10秒钟恢复了! 极简步骤:Chorme界面按F12--应用--存储--清楚缓存搞定! 更多资料&#xff1a; 极简步骤:Chorme界面按F12--应用--存储-…

GSM8K数据集分享

来源: AINLPer公众号&#xff08;每日干货分享&#xff01;&#xff01;&#xff09; 编辑: ShuYini 校稿: ShuYini 时间: 2024-3-3 先进的语言模型可以在许多任务上与人类表现相媲美&#xff0c;但它们仍然难以执行多步骤数学推理任务。为此OpenAI团队创建了一个高质量、语言多…

Centos安装Jenkins

1、更新系统 &#xff08;1&#xff09;更新下系统 sudo yum -y update 安装用于下载java 17二进制文件的wget命令行工具 sudo yum -y install wget vim 2、卸载centos自带的jdk 由于我们安装的版本比较高&#xff0c;需要jdk17&#xff0c;卸载centos自带的jdk。用 下面的…

阿里云DSW做AI绘画时的显卡选择A10?V100?

V100是Volta架构&#xff0c;A10是Ampere架构&#xff0c;架构上讲A10先进点&#xff0c;其实只是制程区别&#xff0c;用起来没区别。 V100是HBM的内存读取&#xff0c;带宽大&#xff0c;但是DDR5的。 二块卡都是全精度为主的算力卡&#xff0c;半精度优势不明显。 需要用…

3/7—21. 合并两个有序链表

代码实现&#xff1a; 方法1&#xff1a;递归 ---->难点 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode *list1, struct ListNode *list2) {/*1.如果l1为…

前端知识点、技巧、webpack、性能优化(持续更新~)

1、 请求太多 页面加载慢 &#xff08;webpack性能优化&#xff09; 可以把 图片转换成 base64 放在src里面 减少服务器请求 但是图片会稍微大一点点 以上的方法不需要一个一个自己转化 可以在webpack 进行 性能优化 &#xff08;官网有详细描述&#xff09;

Yolov8有效涨点,添加多种注意力机制,修改损失函数提高目标检测准确率

目录 简介 CBAM注意力机制原理及代码实现 原理 代码实现 GAM注意力机制 原理 代码实现 修改损失函数 YAML文件 完整代码 &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; http://t.csdnimg.c…

数据结构:Heap(二叉树)的基本操作

目录 1.有关二叉树必须知道的几个基本概念 2.有关二叉树的基本操作 2.0有关元素的定义以及要进行的操作 2.1初始化和销毁操作 2.2插入操作以及上调操作 2.2.1插入操作以及上调操作的图解 2.2.2插入操作以及上调操作的代码 2.3删除根元素及其下调操作 2.3.2删除根元素及…

Pandas 之 merge

merge的作用&#xff1a; merge函数在Python的pandas库中的作用是用来合并两个或多个DataFrame数据表&#xff0c;依据指定的一个或多个键&#xff08;通常是列名&#xff09;进行连接操作[1]。 merge函数可以有多种连接类型&#xff08;如内连接inner、左连接left、右连接ri…

【科研基础|课程】信息论

信息论课程 -上海交大 - 2020春季学期 F:\B\2.sources\CS258信息论 文章目录 1- 信息熵 | 联合熵 | 条件熵 | 链式法则1.1-Entropy1- 信息熵 | 联合熵 | 条件熵 | 链式法则 P3 信息熵 | 联合熵 | 条件熵 | 链式法则 1.1-Entropy Entropy: Brief History 熵的由来,由热力学…

【sw网络监控】通过snmp协议相关的snmp-exporter(收集交换机网络监控数据)+ promethus + grafana

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

● 309.最佳买卖股票时机含冷冻期 多加条件&#xff1a;卖出之后有一天冷冻期不能买入&#xff0c;即卖出之后至少隔一天才能再买入。 要搞清楚每一天有什么状态&#xff1a;持有股票&#xff08;已买入&#xff09;、不持有股票&#xff08;已卖出&#xff09;。不持有股票…

代码随想录 回溯算法-棋盘问题

目录 51.N皇后 37.解数独 51.N皇后 51. N 皇后 困难 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &…

【论文精读】融合知识图谱和语义匹配的医疗问答系统

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

LLM 推理优化探微 (2) :Transformer 模型 KV 缓存技术详解

编者按&#xff1a;随着 LLM 赋能越来越多需要实时决策和响应的应用场景&#xff0c;以及用户体验不佳、成本过高、资源受限等问题的出现&#xff0c;大模型高效推理已成为一个重要的研究课题。为此&#xff0c;Baihai IDP 推出 Pierre Lienhart 的系列文章&#xff0c;从多个维…

世界上最伟大的商业模式是“让利”,总结10套消费返利玩转市场!

文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;很多企业家朋友说&#xff0c;生意越来越难做了&#xff0c;市场太卷、同行价格低、难招商、难融资、难推广&#xff0c;其实你是不懂“人心”&#xff…
最新文章