基于SpringBoot的闲置房屋搜索平台设计与实现

目 录

摘 要 I
Abstract II
引 言 1
1相关技术 3
1.1 jQuery技术简介 3
1.2 SpringBoot框架简介 3
1.3 Bootstrap框架简介 4
1.4 ECharts框架简介 4
1.5 百度地图API简介 4
1.6 Ajax技术简介 5
1.7 MySQL数据库简介 5
1.8本章小结 6
2系统分析 7
2.1功能需求 7
2.2非功能需求 12
2.3本章小结 12
3系统设计 13
3.1系统总体设计 13
3.1.1系统体系结构 13
3.1.2系统组件结构 13
3.1.3系统功能结构 14
3.2系统详细设计 15
3.2.1系统功能设计 15
3.2.2数据库设计 19
3.4本章小结 24
4系统实现 25
4.1开发环境 25
4.2开发规范 25
4.3数据库实现 25
4.4核心功能实现 26
4.4.1新增房源信息功能实现 26
4.4.2新增中介信息功能实现 26
4.4.3新增门店功能实现 27
4.4.4新增新闻信息功能实现 28
4.4.5新增房源小区功能实现 28
4.4.6新增房源解读信息功能实现 29
4.5本章小结 30
5闲置房屋搜索平台测试 31
5.1测试计划 31
5.2测试用例 31
5.3测试结果 33
5.4本章小结 34
结 论 35
致 谢 36
参考文献 37

摘 要

2010年以来,房地产产业的飞速发展,人们就业的机会增多,随着物价的增高,工薪阶级的人们难以负担买房费用,租房成为一种普遍现象。当今社会,随着迅速发展的互联网以及大数据时代的到来,各个平台充斥着大量的信息资源,对于想要租房的人们来说,如何快速精准的找到房源信息成为了首要任务。目前互联网上房屋租赁网站众多,并且房源信息不准确,网站上的房屋信息和实际房源信息不对等,且房租搜索网站只有房屋搜索,对应的管理功能缺乏,用户体验不佳。在这种状态下,趋于传统的房屋租赁网站已经无法满足当今用户进行房屋租赁的客观要求。此文针对当前存在的各种需求开发了基于SpringBoot的闲置房屋搜索平台。
通过对闲置房屋的互联网调研,采用SpringBoot框架进行系统搭建、MySQL数据库存储数据、Bootstrap框架和Ajax技术来完成界面交互、ECharts技术完成图表显示、百度地图API来开发闲置房屋搜索平台,该平台包含管理员、用户两种访问权限。本系统的突出之处在于可以高效管理房源信息和对房源以及中介以及门店信息的整合。通过使用本平台可以使业务实用性、直观性大幅增强,具有精准、可靠、经济、便捷的优点,很大程度能够降低利用人工管理的繁琐过程,提升市场竞争力。
闲置房屋搜索平台中的各个模块已成功实施并投入使用。根据实际使用情况,本文设计的闲置房屋搜索平台具有很强的可扩展性和稳定性,可以满足租房人群现有的需求。
关键词:闲置房屋;SpringBoot;租房

Abstract

Since 2010, with the rapid development of the real estate industry, people’s employment opportunities have increased. With the increase of prices, it is difficult for the working class to bear the cost of buying a house, so renting a house has become a common phenomenon. In today’s society, with the rapid development of the Internet and the arrival of the era of big data, various platforms are full of a large number of information resources. For people who want to rent a house, how to quickly and accurately find the house information has become the primary task. At present, there are many house rental websites on the Internet, and the house source information is not accurate, the house information on the website is not equal to the actual house source information, and the rent search website only has house search, the corresponding management function is lack, and the user experience is poor. In this state, the traditional house rental website has been unable to meet the objective requirements of today’s users. This paper develops a search platform for idle houses based on spring boot for the current needs.
Through the Internet Research of idle houses, the system is built by using spring boot framework, MySQL database to store data, bootstrap framework and Ajax technology to complete the interface interaction, echarts technology to complete chart display, baidu map API to develop a search platform for idle houses, which includes two access rights of administrator and user. The outstanding point of this system is that it can effectively manage the information of house source and integrate the information of house source, agency and store. Through the use of this platform, the practicability and intuitiveness of the business can be greatly enhanced, with the advantages of accuracy, reliability, economy and convenience, to a large extent, it can reduce the tedious process of using manual management, and improve the market competitiveness.
Each module of the search platform has been successfully implemented and put into use. According to the actual use, the search platform designed in this paper has strong scalability and stability, which can meet the existing needs of renters.
Keywords: Idle house; SpringBoot; Renting

引 言

传统的房屋租赁市场,主要由房东、中介、租客三部分组成,传统房屋租赁模式,步骤多、环境复杂、信息不对称等各种因素,存在很多的问题,不管是房东还是租客,在与中介对接过程中也存在信任问题;租客找房过程中,费时费力、虚假信息、报价混乱、家电陈旧、维修不及时、环境差等问题也层出不穷[1]。
2019年我国流动人口规模超2.5亿,其中租赁人口近2个亿。企查查数据显示,我国共有172万家房屋租赁相关企业,其中在业存续的企业为146万家。受到相关政策激励和人们生活消费习惯转变等因素影响,近五年我国房屋租赁企业注册量呈现几何式增长,并于2019年创下注册量新高,达36.7万家企业,较2018年增长了32.5%。
中国流动人口规模2013年已达2.36亿,72%的流动人口通过租房居住,即1.76亿租房流动人口,过半为80后,即近8800万租房青年,2010年承受的房租月均387元,年均4644元[2]。与人口流向相关,房屋租赁市场主要集中于京津冀、长三角、珠三角等经济发达地区及沿海地区,企查查数据显示,山东为我国房屋租赁企业数量最多的省份,广东、江苏次之。
长租公寓企业,一般都是手握两端市场,一端是户主,另一端是租客。公寓企业除了能与租客产生更多交互,同时也对无数小业主进行资产管理,由此而衍生的市场空间巨大[3]。在互联网+的大浪潮冲击下,众多长租公寓品牌不断兴起,除此以外,线下传统的房屋中介还有很大的局限性,他们只能提供少量的几套房源,让租客和消费者没有多少选择的余地。利用强大的互联网进行管理,可以提高公寓的管理效率;利用互联网思维:未来切入租房市场经济。
本设计拟采用基于JavaWeb的技术进行设计,使用SpringBoot框架和Mybatis对本平台进行搭建,该框架可以降低系统的耦合性,框架中的Mybatis对数据库操作进行统一管理,方便快捷。本瓶体使用MySQL数据库作为本系统的存储数据库,使用JSP页面结合JavaScript、jQuery以及Ajax完成网页相关功能。本系统采用分层模式,使每个层次进行分离,有利于对业务进行单独管理,为程序二次开发提供更多便利。闲置房屋搜索平台分为2种访问权限,第一部分是管理员用户,可以对房源信息、新闻信息、中介信息、用户信息、收藏信息等进行增删改查功能;第二部分是普通用户,用户可以浏览房源信息、新闻信息、评论信息等,对房源进行购买等[4]。
本文的大致结构是:引言,描述本平台的选题背景意义和发展趋势;第1章闲置房屋搜索平台的相关技术综述,将完成本平台所需要的各个技术进行描述,并标明每个技术的用途;第2章闲置房屋搜索平台的需求分析,对本平台进行需求分析,描述各个模块;第3章闲置房屋搜索平台的系统总体设计,写明本平台的设计思路,实现过程;第4章闲置房屋搜索平台的系统功能实现,对本平台的每个功能的实现进行详细描述;第5章闲置房屋搜索平台的系统测试,本平台的测试信息;闲置房屋搜索平台的结论,对本平台做一个总结,总结过程中遇到的问题以及感谢所有人的指导帮助。

1相关技术

本系统使用Windows10的操作系统,Eclipse来完成本系统的开发。本系统采用JSP和ECharts技术来对界面进行主要的功能展示,使用Ajax来进行数据的交互访问,使用jQuery库提升用户体验。后台使用SpringBoot框架,使用分层设计模式进行代码的编写,利用MySQL数据库来对数据库中大量数据进行存储。
1.1 jQuery技术简介
前端利用jQuery库、Bootstrap框架两者相辅相成,编辑整个系统的页面。jQuery是开发前端的库,可以对JavaScript进行了很好的封装。Web应用开发的后端技术指的是对代码编写、数据库设计等,主要是用来处理业务逻辑和与数据库进行交互[5]。
jQuery库是一个快速、简洁的对浏览器兼容性较强的JavaScript库,使用户能更方便地处理Html 文件、events、实现动画效果,并且方便地为网站提供Ajax交互。jQuery的宗旨是“Write Less,Do More”,即呼吁写较少的代码,做较多的事情。jQuery封装JavaScript比较常用的功能代码,提供一种便捷的JavaScript设计模式,可以让大家更方便的处理HTML,可以很轻易的将结构与行为分离。jQuery具有特别的链式语法和精简清晰的多功能接口,具有高效灵动的CSS选择器,并且可对CSS选择器进行扩展,拥有方便的插件扩展机制和丰富的插件,jQuery能够进行对页面对象的操作、修改页面的外观、增加更多的页面效果,jQuery兼容各种浏览器[6]。
1.2 SpringBoot框架简介
SpringBoot是一个简化Spring开发的框架。Spring框架功能十分强大,Spring Boot框架的核心配置是自动配置,只要存在与其相应的jar包,Spring就可以自动帮我们配置。如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用我们自己的配置。另外,Spring Boot还集成了嵌入式的Web服务器,系统监控等很多有用的功,让我们快速构建企业及应用程序。约定大于配置,去繁就简,just run 就能创建一个独立的,产品级的应用[7]。SpringBoot可以使编码变得简单,SpringBoot采用 JavaConfig的方式,对Spring进行配置。SpringBoot可以快速创建独立运行的Spring项目以及与主流框架集成,使用嵌入式的Servlet容器,同时大量的自动配置,简化开发,也可以修改默认值,无需配置XML,无代码生成[8]。
1.3 Bootstrap框架简介
Bootstrap是目前市面上非常流行的Web前端框架之一,因简洁、直观、功能强大被开发者广发使用,因为样式丰富,使用便捷,已经形成了自己的固定体系。
Bootstrap是基于JavaScript、HTML和CSS开发的框架,由Twitter发布的开源产品托管于Github上面,用于开发具有移动设备偏好的响应式Web项目[9]。Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等。同时Bootstrap包含十几个自定义的jQuery 插件。用户可以直接包含所有的插件,也可以逐个包含这些插件。用户可以定制Bootstrap的组件、LESS 变量和jQuery 插件来得到自己的版本。
Bootstrap结合了常见的CSS样式和JavaScript插件封装成的性能良好的库。这极大的方便了后台的开发者,即使对前端代码不算了解,也能迅速上手掌握并使用。很大程度上提高了开发的效率,并且根据一定的规则编写符合规范的CSS和JavaScript代码。这帮助开发者省去了前端页面开发的时间,使得整个高校志愿联盟平台的编写更为高效。
1.4 ECharts框架简介
ECharts是一个由中国人开发的基于canvas的可视化库。具有设计优雅,效果酷的优点[10]。在前端的开发人员中受到了极大的好评。ECharts可以说是在互联网的开发过程中,后台数据库用来实现数据到图形映射的一个插件。
这可以在许多场景中使用方便。通过数据表,用户可以灵活地配置,数据如何对应于轴和图形系列,可以更改对行和列的图表的理解,还可以指定与轴对应的行和列。
使用ECharts有三个主要原因。首先因为ECharts库是一个百度项目,它会时常进行更新,最新版本的是ECharts 3.0;第二个是该库的项目文档都是中文的,每个点解释的详细易懂;第三点是ECharts支持很多图形,并且可以直接切换图形,用户的使用感受更加流畅快捷。
1.5 百度地图API简介
百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。适用于PC端以及或移动设备端的基于浏览器的开发。JS版本还为用户开放了开源库,简化开发[11]。
1.6 Ajax技术简介
Ajax(Asynchronous Javascript And XML)就是指异步的JavaScript和XM。Ajax功能被控件或者对象的方式所应用,一系列的JavaScript代码被Ajax类库所包括[12]。Ajax建立一个可以在任何Web开发环境都可以使用的客户端类库。Ajax技术本质是利用JavaScript实现的。
Java代码与服务器之间需要进行少量的数据的互换,通过该信息的互换,可以用到Ajax对网页进行无浏览刷新,Ajax的特点就是可以不提交数据,即可达到刷新部分页面的神奇效果,也称网页的局部刷新。Ajax的功能很强大,可以处理各种数据的提交,但是在做excel导出的时候不能用Ajax处理请求,会无响应。Ajax技术避免了不必要的用户请求,方便了程序员、也提高了用户的体验[13]。
1.7 MySQL数据库简介
MySQL是一种处理关系型的数据库系统,能够支持标准的数据结构化的查询语句。MySQL把服务器的数据相关的行和列组织起来管理关系数据库,所以叫做关系型数据库管理系统[14]。如果不进行事务处理的话,MySQL无疑是最好的选择[15]。
MySQL是当前比较具有权威性的数据库产品,它具有的兼容性、可移动性、可联结性、高生产性和开放性的特点,使它成为当今众多的程序开发人员首选的数据库开发工具。所以本系统选择Java和MySQL作为开发技术是为以后开发比较复杂的项目打基础,以免到时候遇到相关的技术问题出现状况。MySQL现在已经归属于Oracle公司了,运用Oracle数据库的人越来越多,但是由于Oracle使用会产生费用的问题,大部分的中小企业仍旧使用MySQL作为数据管理工具。
1.8本章小结
本章主要介绍了闲置房屋搜索平台开发所涉及到的开发语言、前端后端框架以及数据库,以及实现闲置房屋搜索平台所使用到的JavaWeb开发技术、实现界面交互的Ajax技术、以及地图定位等,并根据这些深入研究,为程序的实现奠定了基础。

2系统分析

本章基于第一章介绍的相关技术,详细的描述了闲置房屋搜索平台的系统的一个分析情况,分别从非功能需求和功能需求进行分析,用例表来进行描述以及用例图展示了用例之间的关系,可以更加直观的展示闲置房屋搜索平台的功能需求。本章的系统分析可用于指导本系统后续系统设计、项目开发和项目测试阶段的工作。
2.1功能需求
需求分析是设计项目的基础,需求分析做得充分、准确,能够在很大程度上决定后期开发人员编码的速度与质量。如果需求不明确,做不好会造成客户的不满,在项目验收时客户会拒绝签收,严重的时候还会导致重新设计整个项目的数据库,从而浪费公司人力和经济成本。
经过对现有系统常规功能和闲置房屋搜索等为目的的系统功能的分析,确定闲置房屋搜索平台的基本功能包括:管理员基本功能,管理员在进行登录后可以对房源信息进行增加、删除、修改、查询,黑名单信息的查询和删除,新闻信息的增加、删除、修改、查询,浏览登录日志信息,浏览修改密码日志信息,中介信息的添加、删除、修改、查询,门店管理来对中介公司旗下的门店进行把控,浏览房屋费用信息、小区信息,以及用户管理等功能。如图2.1所示。
在这里插入图片描述

图2.1 闲置房屋搜索平台管理员端用例图
新闻信息管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。用户点击“新闻管理”,可以进入新闻信息管理页面,点击“新增新闻”按钮,去增加自己的新闻信息,点击已有的新闻信息后面的修改标志,也可以修改自己的新闻信息。
用户信息管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。用户点击“用户管理”,可以进入到用户信息管理页面,点击“新增用户”按钮,可以新增用户信息,点击已有的用户信息后面的铅笔图表,修改用户信息。
中介管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“中介管理”,可以进入中介管理页面,点击“新增中介”按钮,可以进入增加中介信息,点击已有的中介信息后面的铅笔图标,可以修改中介信息。
门店管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“门店管理”,可以进入门店管理页面,点击“新增门店”按钮,可以进入增加门店信息,点击已有的门店信息后面的铅笔图标,可以修改门店信息。
订单管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“订单管理”,进入订单管理的主页面,会看到所有订单信息。
黑名单管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“黑名单管理”,进入黑名单管理的主页面,会看到所有黑名单信息。
费用管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“房屋管理”,进入房屋管理管理的主页面,点击详情,可以看到费用信息。
登录日志管理,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。点击“日志管理”中的“登录日志管理”,进入登录日志管理的主页面,会看到所有登录信息。
密码修改日志管理,用户打开规定所用的浏览器,进行本平台访问时,浏览器中会显示本平台的主页面。点击“日志管理”中的“密码修改日志管理”,进入密码修改日志管理的主页面,会看到所有密码修改信息。如表2.1所示。
表2.1 闲置房屋搜索平台管理员端用例表
序号 参与者 用例名称 用例说明
1 管理员(Admin) Add News 增加新闻信息
2 管理员(Admin) Update News 修改新闻信息
3 管理员(Admin) Get News 查询新闻信息
4 管理员(Admin) Add Company 增加中介信息
5 管理员(Admin) Update Company 修改中介信息
6 管理员(Admin) Get Company 查询中介信息
7 管理员(Admin) Add Shop 增加门店信息
8 管理员(Admin) Update Shop 修改门店信息
9 管理员(Admin) Get Shop 查询门店信息
10 管理员(Admin) Get Order 查询订单信息
11 管理员(Admin) Get BlackList 查询黑名单信息
12 管理员(Admin) Add User 增加用户信息
13 管理员(Admin) Update User 修改用户信息
14 管理员(Admin) Get User 查询用户信息
15 管理员(Admin) Get LoginLog 查看登录日志信息
16 管理员(Admin) Get ModifyLog 查看密码修改日志信息
17 管理员(Admin) Add Cost 增加费用信息
18 管理员(Admin) Update Cost 修改费用信息
19 管理员(Admin) Get Cost 查询费用信息
20 管理员(Admin) Add Picture 增加房源图片信息
21 管理员(Admin) Update Picture 修改房源图片信息
22 管理员(Admin) Get Picture 查看房源图片信息
23 管理员(Admin) Add Village 增加小区信息
24 管理员(Admin) Update Village 修改小区信息
25 管理员(Admin) Get Village 查看小区信息
普通用户基本功能,普通用户在登录后可以对查看房源、小区、费用、中介、房源图片、房源位置、房源描述、房源解读等信息,还可以对房源进行评论以及查看其他人对该房源的评论;还可以对房源进行购买,查看自己的订单信息以及收藏信息和浏览信息,修改密码等功能。如图2.2所示。
在这里插入图片描述

图2.2 闲置房屋搜索平台用户端用例图
查看房源信息,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,可以浏览房源信息。
查看收藏信息,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。鼠标悬浮在右上角用户名时,点击“我的收藏”按钮,进入我的收藏列表页,可以查看收藏的房屋信息。
查看浏览信息,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。鼠标悬浮在右上角的用户名时,点击“我的浏览”按钮,进入我的浏览列表页,可以查看浏览过的房屋信息。
举报,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,发现该房源信息有违规信息或行为时,点击“举报”,举报该房源信息。
收藏,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,点击“收藏”,收藏该房源信息。
购买房屋,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,点击“购买”,购买该房源。
修改密码,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。鼠标悬浮在右上角用户名时,点击“修改密码”按钮,进入修改密码页面,输入信息,完成密码修改功能。
查看小区信息,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,可以浏览小区信息。
查看费用信息,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,可以浏览费用信息。
查看和发布评论,用户打开规定所用的浏览器,访问本平台时,浏览器中会显示本平台的主页面。列表显示房源信息,随意点击一个房源信息,进入该房源详情页面,可以浏览其他人的评论,在下方输入想要发布的评论信息,点击“发布评论”,完成发布评论操作。如表2.2所示。
表2.2 闲置房屋搜索平台用户端用例表
序号 参与者 用例名称 用例说明
1 用户(User) Add Comment 增加评论信息
2 用户(User) Get Comment 查询评论信息
3 用户(User) Get Picture 查询房源图片信息
4 用户(User) Get Cost 查询房源费用信息
5 用户(User) Get Village 查询房源小区信息
6 用户(User) Update Password 修改密码
7 用户(User) Add Order 购买房屋
8 用户(User) Add Collect 收藏
9 用户(User) Add BlackList 举报
10 用户(User) Get Browse 查看浏览信息
11 用户(User) Get Collect 查看收藏信息
12 用户(User) Get House 查看房源信息
13 用户(User) Get Remark 查看描述信息
14 用户(User) Get News 查看新闻信息
15 用户(User) Get Location 查看房源位置信息
2.2非功能需求
非功能需求[16]包括对服务器硬件和软件要求、客户端软件要求、访问容量以及响应时间。软件要求主要是指对相关操作系统、数据库服务器、Web服务器的要求。
非功能需求的满足程度,直接影响软件质量的满足程度。闲置房屋搜索平台的非功能需求是功能需求以外的特性,包括对服务器硬件和软件要求、客户端软件要求、访问容量以及响应时间。如表2.4所示。
表2.4 非功能需求
编号 类别 内容
1 服务器硬件要求 处理器:Core i5以上;内存>=500MB;硬盘>=200G
2 服务器端软件要求 操作系统:Windows7及以上;
数据库服务器:MySQL56;
Web服务器:IIS6.0或以上版本
3 客户端软件要求 操作系统:Windows 7及以上;
浏览器:Internet Explorer 6.0及以上;
开发工具:Eclipse;
4 访问容量 系统要求支持的最大并发用户数为20;
5 响应时间 复杂功能响应时间<=300ms;
简单功能响应时间<=100ms;
2.3本章小结
本章主要介绍了闲置房屋搜索平台的需求分析的相关内容,任何的软件开发中,需求分析都是第一步,需求分析做的越为详细,在以后的开发过程中就会节省很多成本。本章通过需求的分析和用例图的展示,用例表辅助用例图,使用户对该系统的使用功能一目了然。

3系统设计

本章以上一章所描述的需求分析为基础,对本系统做了系统设计。按照业务需求来对本系统进行整个体系结构的设计规划,可以分为三大部分,首先是系统功能设计,其次是数据库设计,最后是界面设计。本项目系统设计为下一步的整个系统编写打好基础。
3.1系统总体设计
本章是对闲置房屋搜索平台的层次划分、模块功能、数据结构、接口、出错处理、扩展性等进行了设计,使该系统更加符合用户的需求,同时为测试人员提供参考。
3.1.1系统体系结构
本系统将采用浏览器和服务器结构(B/S结构)。程序员把业务逻辑的代码放在服务器端,很大程度上减轻了浏览器端的负担,用户在浏览器端只需要传输数据,数据传入到后端服务器后就会处理此功能的业务逻辑。B/S结构不仅仅保留了C/S结构优点,还使复杂的程序变得简单起来。
当软件编写结束后,进入部署实施阶段。接下来对闲置房屋搜索平台的部署方案进行详细设计。本系统部署结构如图3.1所示。
在这里插入图片描述

图3.1 系统部署结构图
3.1.2系统组件结构
模型层(Model层)主要是将类中的字段和数据库中的字段相对应,需要将每一个表中的所有字段封装成一个实体类。模型层里对象与数据库中的字段具有一一对应的映射关系,所有需要进行数据处理的字段都需要依赖对象模型,所以在开发项目时传入的参数和用到的方法都依赖于模型层。
数据访问层(DAO层)主要作用是对数据库表中的数据[17]进行一个操作,依赖于数据库的表结构。数据访问层专门提供对数据库中各个表的数据的增删改查等功能。
业务逻辑层(BLL,Business Logic Layer层)主要作用是用来处理事务的,业务逻辑层依赖于数据访问层。在软件开发的过程中客户可能会改变需求,或者在项目验收时,做出的功能与客户的需求不符,此时需要改变软件的业务逻辑。将业务逻辑分离出来,在不改变参数的情况下,不用改动其他代码就可以修改功能。
用户界面层(UI,User Interface层)向用户展示经过本系统业务处理后数据,即展示的需求功能。用户界面层还可以用来提交数据,用户对界面做出相应的操作,将数据提交到后台,也就是业务逻辑层,进而实现对数据库的增删改查操作。
3.1.3系统功能结构
本平台的功能可以划分为两大模块:管理员模块、用户模块。平台提供如下功能:用户基本功能,包括登录、注册、修改密码、修改个人信息、注销等,普通用户在登录后可以对房源信息、收藏信息、浏览记录信息、房源位置信息、房源描述信息、房源小区信息、新闻信息、房源费用信息、评论信息、房源图片信息进行浏览功能,对收藏、举报、订单进行新增操作;管理员用户除了基本功能以外,还可以对黑名单信息、房屋费用信息、房源信息、房源位置信息、登录日志、密码修改日志、新闻信息、订单信息、房源图片信息、房源描述信息、门店信息、中介信息、房源概括信息、房源解读信息、用户信息、房源小区信息进行浏览,还可以对房屋信息、中介信息、门店等进行增删改操作,具体的功能结构图如图3.2所示。
在这里插入图片描述

图3.2 闲置房屋搜索平台功能结构图
3.2系统详细设计
详细设计介绍整个闲置房屋搜索平台的功能及数据库信息等。房屋搜索平台一共包括20张表,在本节中的实体-关系图中可以清楚显示各个表之间的关系,及每个实体存在的属性。
3.2.1系统功能设计
这一部分主要描述的是该平台对各个功能模块的设计[18]。在设计平台功能时,用时序图来对功能进行更直观地展现,并配以功能描述来对功能进行详细解释。以下完成了主要核心功能的系统设计。
新增房源信息的功能,用户首先登录闲置房屋搜索平台,点击房源管理,进入房源管理主页面,点击新增房源,即到达编辑房源信息界面。然后输入必要的内容。最后点击保存按钮,就可以通过平台来新增房源信息,在房源管理首页会有显示,普通用户可以看到上传的房源信息。该功能的时序图如图3.3所示。
在这里插入图片描述

图3.3 新增房源信息功能时序图
新增房源信息功能设计,用户首先登录闲置房屋交易平台,点击房源管理,进入房源信息主页面,用户点击新增房源,用户进入house.jsp界面,输入房源标题,房源费用,房源图片等,在当前界面将信息传递到controller,调用service层新增方法,通过mapper将数据传入数据库,根据对应的方法调用xml文件的新增功能,并返回数据。具体功能描述见表3.1。
表3.1 新增房源信息功能描述
编号 类名 功能描述
1 house.jsp 输入新增内容,并提交信息给后台
2 HouseController 在控制层获取到的新增房源信息的数据并调用对应的service方法
3 HouseService 通过传入的数据进行新增房源信息业务逻辑的处理并调用对应的mapper方法
4 HouseMapper 在数据访问层新增房源信息,新增后的信息返回前端界面
5 house.jsp 新增完成后,自动跳转至房源信息列表页
新增中介信息功能,用户首先登录闲置房屋搜索平台,点击中介管理,进入中介管理主页面,点击新增中介,即到达编辑中介信息界面。然后输入必要的内容。最后点击保存按钮,就可以通过平台来新增中介信息,在中介管理首页会有显示,普通用户可以看到上传的中介信息。该功能的时序图如图3.4所示。
在这里插入图片描述

图3.4 新增中介信息时序图
新增中介信息功能,用户首先登录闲置房屋交易平台,点击中介管理,进入中介信息主页面,用户点击新增房源进入house.jsp界面,输入中介信息,将当前界面将信息传递到controller,调用service层新增中介信息的方法,通过mapper将数据传入数据库,根据对应的方法调用xml文件的新增功能,并返回数据。具体功能描述见表3.2。
表3.2 新增中介信息功能描述
编号 类名 功能描述
1 company.jsp 输入新增内容,并提交信息给后台
2 CompanyController 在控制层获取到的新增中介信息的数据并调用对应的service方法
3 CompanyService 通过传入的数据进行新增中介信息业务逻辑的处理并调用对应的mapper方法
4 CompanyMapper 在数据访问层新增中介信息,新增后的信息返回前端界面
5 company.jsp 新增完成后,自动跳转至中介信息列表页
新增新闻信息功能,用户首先登录闲置房屋搜索平台,点击新闻管理,进入新闻管理主页面,点击新增新闻,即到达编辑新闻信息界面。然后输入必要的内容。最后点击保存按钮,就可以通过平台来新增新闻信息,在新闻管理首页会有显示,普通用户可以看到上传的新闻信息。该功能的时序图如图3.5所示。
在这里插入图片描述

图3.5 新增新闻功能时序图
新增新闻信息功能,用户首先登录闲置房屋交易平台,点击新闻管理,进入新闻信息主页面,用户点击新增新闻进入news.jsp界面,输入新闻信息,将当前的信息传递到controller,调用service层新增新闻信息的方法,通过mapper将数据传入数据库,根据对应的方法调用xml文件的新增功能,并返回数据。具体功能描述见表3.3。
表3.3 新增新闻功能描述
编号 类名 功能描述
1 news.jsp 输入新增内容,并提交信息给后台
2 NewsController 在控制层获取到的新增新闻信息的数据并调用对应的service方法
3 NewsService 通过传入的数据进行新增新闻信息业务逻辑的处理并调用对应的mapper方法
4 NewsMapper 在数据访问层新增新闻信息,新增后的信息返回前端界面
5 news.jsp 新增成功后,自动跳转至新闻列表页面
购买房源功能,用户首先登录闲置房屋搜索平台,进入首页,可以搜索想要的房源信息,点击该房源信息,进入房源信息详情页面,点击购买按钮,就可以通过平台来购买房源并且新增订单信息,在我的订单中会有显示。该功能的时序图如图3.6所示。
在这里插入图片描述

图3.6 购买房源功能时序图
购买房源功能,用户首先登录闲置房屋交易平台,进入首页,可以搜索想要的房源信息,点击该房源信息进入beforehouse.jsp界面,点击保存,将当前界面将信息传递到controller,调用service层新增订单信息的方法,通过mapper将数据传入数据库,根据对应的方法调用xml文件的新增功能,并返回数据。具体功能描述见表3.4。
表3.4 新增订单功能描述
编号 类名 功能描述
1 beforehouse.jsp 点击购买按钮,并提交信息给后台
2 OrderController 在控制层获取到的新增订单信息的数据并调用对应的service方法
3 OrderService 通过传入的数据进行新增订单信息业务逻辑的处理并调用对应的mapper方法
4 OrderMapper 在数据访问层新增订单信息,新增后的信息返回前端界面
5 beforehouse.jsp 新增成功后,自动跳转至首页
3.2.2数据库设计
根据上面描述的需求分析和系统设计,以及分析整个系统的业务流程,形成了可以反应闲置房屋搜索平台的信息需求的数据概念模型。用E-R图来进行表示,并设计绘制了部分的实体关系图。如图3.7所示。
在这里插入图片描述

图3.7 闲置房屋搜索平台E-R图
通过图3.7实体-关系图(E-R图),可以清晰了解本平台中的实体数量、之间联系以及每个实体的属性。本平台中实体和实体间存在0个一对一关系,10个多对多关系,29个一对多关系、。可以看出一共存在20个表,图中的实体可以显示出的有20个表。通过E-R图,得到以下数据库表,如表3.5所示。
表3.5 数据库表列表
序号 表名 说明
1 blacklist 黑名单信息表
2 browse 浏览记录信息表
3 collect 收藏信息表
4 comment 留言信息表
5 company 中介信息表
6 cost 房屋费用信息表
7 house 房源信息表
8 house_user 房源用户关系表
9 location 房源位置信息表
10 news 新闻信息表
11 loginlog 登录日志信息表
12 modifylog 修改密码日志信息表
13 order 订单信息表
14 picture 房源图片信息表
15 remark 房屋描述信息表
16 shop 门店信息表
17 survey 房源概括信息表
18 unscramble 房源解读信息表
19 user 用户信息表
20 village 房源小区信息表
位置信息表(location)用来存储房源位置的相关信息。包括房屋id、精度、维度等信息,该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.6所示。
表3.6 位置信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 位置编号
house_id INT(11) NOT NULL 房屋id
jing VARCHAR(100) NOT NULL 精度
wei VARCHAR(100) NOT NULL 维度
新闻信息表(news)用来存储新闻的相关信息。包括用户id、精度、维度等信息,该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.7所示。

表3.7 新闻信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 新闻编号
title VARCHAR(100) NOT NULL 标题
content VARCHAR(3000) NOT NULL 内容
time DATE NOT NULL 时间
订单信息表(order),主要用于保存订单信息。例如房屋id、房屋标题、价格、时间等。该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.8所示。
表3.8 订单信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 黑名单编号
user_id INT(11) NOT NULL 用户id
house_id INT(11) NOT NULL 房源id
title VARCHAR(200) NOT NULL 房源标题
price FLOAT NOT NULL 价格
state VARCHAR(10) NOT NULL 状态
create DATE NOT NULL 交易时间
黑名单信息表(blacklist)用来存储用户的黑名单信息。例如用户id、房源id等信息。该表是以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.9所示。
表3.9 黑名单信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 黑名单编号
house_id INT(11) NOT NULL 房源id
user_id INT(11) NOT NULL 用户id
收藏信息表(collect)用来保存用户收藏的房源信息。例如房源id、用户id等。该表是以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.10所示。
表3.10 收藏信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 收藏编号
house_id INT(11) NOT NULL 房屋id
user_id INT(11) NOT NULL 用户id
评论信息表(comment)用来保存房源的评论信息。例如房源id、评论内容、用户id、评论时间等。该表是以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.11所示。
表3.11 评论信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 评论编号
house_id INT(11) NOT NULL 房源id
user_id INT(11) NOT NULL 用户id
content VARCHAR(200) NOT NULL 评论内容
time DATE NOT NULL 评论时间
中介信息表(company)用来存储中介的相关信息。包括中介名称、所在城市、所在地址等信息,并且该表的账号具有唯一约束,账号不能重复。具体字段如表3.12所示。
表3.12 中介信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 中介编号
name VARCHAR(100) NOT NULL 中介名称
city VARCHAR(50) NOT NULL 所属城市
location VARCHAR(200) NOT NULL 地址
费用信息表(cost)主要用于保存房源费用的基本信息,包括房源id、房源价格、房源类型、房源交易权属、房源是否唯一、房源参考首付等。该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.13所示。
表3.13 费用信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 费用编号
house_id INT(11) NOT NULL 房源id
total FLOAT NOT NULL 总价
type VARCHAR(10) NOT NULL 房源类型
ownership VARCHAR(100) NOT NULL 交易权属
only VARCHAR(10) NOT NULL 是否唯一
payment FLOAT NOT NULL 参考首付
房源信息表(house)主要用于保存房源的基本信息,例如房源id、房源标题、房源户型、房源装修情况等。该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.14所示。

表3.14 房源信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 房源编号
title VARCHAR(500) NOT NULL 房源标题
household VARCHAR(50) NOT NULL 户型
area FLOAT NOT NULL 面积
orientation VARCHAR(50) NOT NULL 朝向
create VARCHAR(50) NOT NULL 建造年代
renovation VARCHAR(50) NOT NULL 装修情况
房源小区信息表(village)用来存储房屋小区的相关信息。该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.15所示。
表3.15 房源小区信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 小区编号
house_id INT(11) NOT NULL 房源id
name VARCHAR(200) NOT NULL 小区名称
price FLOAT NOT NULL 小区均价
location VARCHAR(200) NOT NULL 小区位置
property FLOAT NOT NULL 物业费
capacity FLOAT NOT NULL 容积率
green FLOAT NOT NULL 绿化率
car INT(11) NOT NULL 停车位
房源解读信息表(unscramble)用来存储房源解读的相关信息。包括小区户型、小区设施、房屋品质等信息,该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.16所示。
表3.16 房源解读信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 解读编号
house_id INT(11) NOT NULL 房源id
household VARCHAR(500) NOT NULL 小区户型
facilities VARCHAR(500) NOT NULL 小区设施
quality VARCHAR(500) NOT NULL 房屋品质
traffic VARCHAR(500) NOT NULL 交通情况
education VARCHAR(500) NOT NULL 教育情况
insufficient VARCHAR(500) NOT NULL 小区不足
房源用户关系表(house_user)用来存储用户房屋的相关信息。包括房源id、用户id、关系id等信息,该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.17所示。
表3.17 房源用户关系表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 关系编号
house_id INT(11) NOT NULL 房源id
user_id INT(11) NOT NULL 用户id
房源描述信息表(remark)用来存储房源描述的相关信息。包括房源id、核心卖点、业主心态等信息,该表以自增长字段id作为主键,使每条记录具有唯一性。具体字段如表3.18所示。
表3.18 房源描述信息表
列名 数据类型 约束条件 其它说明
id INT(11) PRIMARY KEY 描述编号
house_id INT(11) NOT NULL 房源id
core VARCHAR(200) NOT NULL 核心卖点
mentality VARCHAR(200) NOT NULL 业主心态
service VARCHAR(200) NOT NULL 服务介绍
3.4本章小结
本章主要介绍闲置房屋搜索平台的系统设计。首先对平台的结构和组件进行设计,接着细化平台的功能结构,并描述每个功能的具体操作方法;然后针对主要功能进行详细设计,并给出时序图;最后对每个表进行细节描述。

4系统实现

4.1开发环境
本系统的开发系统是Windows 10操作系统。用Eclipse作为开发工具,SpringBoot内置Tomcat为服务器来进行开发,数据库使用MySQL5.6版本的数据库来存储数据,电脑性能为Intel® i5处理器,足以满足开发需求。
4.2开发规范
本系统完全按照Java的命名规范来进行命名,包括包名、类名、接口名、方法名等。其中包名全部由小写字母组成,并且见名知意,看见包名就知道里面是关于哪个方面的内容。在类或接口中的方法名一般小写字母开头,以小驼峰命名法来进行命名[19]。规范的命名和注释可以增加代码的可读性,方便开发人员找到对应的方法。
4.3数据库实现
根据实体关系[20],设计出20张表,如图4.1所示,但本图中有20张表,目前是关于普通用户和管理员的,以后还陆续将小区等表添加进该平台,方便以后对所有房源的位置信息进行统一的管理,像这类功能待后续完善。
在这里插入图片描述

图4.1 闲置房屋搜索平台数据库界面

4.4核心功能实现
本系统内容包括房源信息管理、中介信息管理、新闻信息管理、用户管理、订单信息管理等。在首页的下部分主要是ECharts图表,主要显示房源信息最多的十个地区。
4.4.1新增房源信息功能实现
新增房源的功能,用户进入房源信息列表页面,点击新增房源信息,即到达编辑房源信息界面。然后输入相关内容,点击保存按钮,就可以完成提交的操作。新增房源的信息界面如图4.2所示。
在这里插入图片描述

图4.2 新增房源信息界面
/** 新增房源信息*/
@RequestMapping(“/editHouse”)
public String editHouse(House house) {
if(house.getHouseId() == null) {
//新增房源信息
if(houseService.addHouse(house)) {
return “redirect:toHouseList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.4.2新增中介信息功能实现
新增中介的功能,用户进入中介信息的列表页面,然后点击新增中介信息,即到达编辑中介信息界面。然后输入相关内容,点击保存按钮,即可完成提交操作。新增中介信息界面如图4.3所示。
在这里插入图片描述

图4.3 新增中介信息界面
/** 新增中介信息*/
@RequestMapping(“/editCompany”)
public String editCompany(Company company) {
if(company.getCompanyId() != null) {
//新增
if(companyService.addCompany(company)) {
return “redirect:toCompanyList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.4.3新增门店功能实现
新增门店的功能,用户进入门店信息列表页面,点击新增门店信息,即到达编辑门店信息界面。然后输入相关内容,点击保存按钮,即可完成提交操作。新增门店界面如图4.4所示。
在这里插入图片描述

图4.4 新增门店界面
/** 新增门店信息*/
@RequestMapping(“/editShop”)
public String editShop(Shop shop) {
if(shop.getShopId() == null) {
//新增
if(shopService.addShop(shop)) {
return “redirect:toShopList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.4.4新增新闻信息功能实现
新增新闻的功能,用户进入新闻信息列表页面,点击新增新闻信息,即到达编辑新闻信息界面。然后输入相关内容,点击保存按钮,即可完成提交操作。新增新闻信息界面如图4.5所示。
在这里插入图片描述

图4.5 新增新闻信息的界面
/** 新增新闻信息*/
@RequestMapping(“/editNews”)
public String editNews(News news) {
if(news.getNewsId() == null) {
//新增
if(newsService.addNews(news)) {
return “redirect:toNewsList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.4.5新增房源小区功能实现
新增小区的功能,用户进入房源信息列表页面,点击新增信息,即到达编辑小区信息界面。然后输入相关内容,点击保存按钮,即可完成提交操作。新增房源小区信息界面如图4.6所示。
在这里插入图片描述

图4.6 新增房源小区的界面
输入信息内容,如若有一项为空,会有输入验证,提示输入内容不能为空,保存后,界面就会显示已经保存的小区信息。新增房源小区信息功能的关键代码。
/** 新增小区信息*/
@RequestMapping(“/editVillage”)
public String editVillage(Village village ) {
if(village .getVillageId() == null) {
//新增
if(villageService.addVillage(village)) {
return “redirect:toHouseList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.4.6新增房源解读信息功能实现
新增解读的功能,用户进入房源信息列表页面,点击新增信息,即到达编辑解读信息界面。然后输入相关内容,点击保存按钮,即可完成提交操作。新增房源解读信息界面如图4.7所示。
在这里插入图片描述

图4.7 新增房源解读的界面
输入信息内容,如若有一项为空,会有输入验证,提示内容不能为空,保存后,界面就会显示已经保存的解读信息。新增房源解读信息功能的关键代码。
/** 新增解读信息*/
@RequestMapping(“/editUnscramble”)
public String editUnscramble(Unscramble unscramble) {
if(unscramble.getUnscrambleId() == null) {
//新增
if(unscrambleService.addUnscramble(unscramble)) {
return “redirect:toHouseList”;
} else {
throw new RuntimeException(“操作失败,请重试”);
}
}
}
4.5本章小结
本章主要介绍了闲置房屋搜索平台编码实现阶段需要完成的工作,规定了开发环境、开发规范以及系统核心功能的实现,本系统总体使用分层设计模式,使功能变得更加完善。

5闲置房屋搜索平台测试

系统测试[21]是项目开发过程中一个重要的阶段。对软件进行实地化的场景化测试,目的是能够及时发现软件中的漏洞,使得系统更加完善。在整个闲置房屋搜索平台开发的过程中,会遇到各种各样的问题,以及每个阶段都会出现不可避免的各类编码错误,有制度的测试可以规避以后错误的发生,为了减少错误的存在,优化系统功能,本章进行必要的测试。
5.1测试计划
为了保证闲置房屋搜索平台的用户体验和使用质量,尽量找出该平台存在的错误并及时加以改正,确保用户能够更快更方便的使用该平台。在整个项目的实现过程中,将严格按照科学的软件测试方法[22],进行测试用例,针对项目各个模块都进行测试,具体的测试区分为单元测试和集成测试。
5.2测试用例
新增房屋信息是闲置房屋搜索平台最重要的核心功能之一[23],管理员在登录后,点击“房屋管理”进入房屋管理主页面,在房屋信息管理页面点击新增房屋信息,即可增加新的房屋信息。此处对用户增加房屋功能进行测试,如表5.1所示。
表5.1 管理员新增房屋测试表
编号 测试方法 预期结果 实际结果
1 正常启动程序,输入用户名和密码后进入房屋管理进行新增 输入房屋内容后点击保存按钮提示保存成功。 与预期结果相同
2 没有登录进入房屋管理进行新增 会提示请登录弹出框 与预期结果相同
3 登录后进入房屋管理进行新增,未输入内容直接点击保存按钮 提示内容不能为空 与预期结果相同

新增新闻信息是管理员在登录后,进入新闻管理列表页,点击新增新闻,跳转至新增新闻页面,输入内容,对新闻进行新增操作,此处对新增新闻信息功能进行测试,如表5.2所示。
表5.2 管理员新增新闻测试表
编号 测试方法 预期结果 实际结果
1 正常启动程序,输入用户名和密码后进入新闻管理进行新增新闻 输入内容后点击保存按钮提示保存成功。 与预期结果相同
2 没有登录进入新闻管理进行新增 会出现请登录弹出框 与预期结果相同
3 登录后进入新闻管理进行新增,未输入内容直接点击保存按钮 提示内容不能为空 与预期结果相同
新增中介信息是管理员在进入中介管理后,点击新增中介信息,可以增加新的中介信息,普通用户在浏览房屋信息时,可浏览到该房源是否为个人房源。此处对新增中介信息功能进行测试,如表5.3所示。
表5.3 管理员新增中介信息测试表
编号 测试方法 预期结果 实际结果
1 正常启动程序,输入用户名和密码后进入中介管理进行新增中介 输入内容后点击保存按钮提示保存成功。 与预期结果相同
2 没有登录进入中介管理进行新增 会弹出请登录提示框 与预期结果相同
3 登录后进入中介管理进行新增中介信息,未输入内容直接点击保存 提示内容不能为空 与预期结果相同
新增门店信息是管理员在进入门店管理后,点击新增门店信息,可以增加新的门店信息,该功能主要方便中介对门店进行统一的管理,普通用户在中介中可以看到各个中介的门店,可以到门店进行咨询。此处对新增门店信息功能进行测试,如表5.4所示。
表5.4 管理员新增门店信息测试表
编号 测试方法 预期结果 实际结果
1 正常启动程序,输入用户名和密码后进入门店管理进行新增门店 输入内容后点击保存按钮提示保存成功。 与预期结果相同
2 没有登录进入中介管理进行新增 会弹出请登录提示框 与预期结果相同
3 未输入内容直接点击保存 提示内容不能为空 与预期结果相同
新增用户信息是管理员在进入用户管理后,点击新增用户信息,可以增加新的用户信息,该功能主要方便中介对房产经纪人进行统一的管理,普通用户在中介中可以看到所有经纪人。此处对新增用户信息功能进行测试,如表5.5所示。
表5.5 管理员新增用户信息测试表
编号 测试方法 预期结果 实际结果
1 正常启动程序,输入用户名和密码后进入用户管理进行新增用户 输入内容后点击保存按钮提示保存成功。 与预期结果相同
2 没有登录进入中介管理进行新增 会弹出请登录提示框 与预期结果相同
3 未输入内容直接点击保存 提示内容不能为空 与预期结果相同
5.3测试结果
进入Jmeter软件[24],添加线程组,用来配置名称、线程数、准备时长等,添加HTTP请求,添加察看结果树,来确定本次测试的结果,添加聚合报告,用来存放性能测试报告,具体如图5.1所示。
在这里插入图片描述

图5.1 Jmeter使用界面图
点击线程组[25],配置本次性能测试相关参数:线程数、循环次数、持续时间等,这里配置并发用户数量为10,持续时间为60s,点击绿色的箭头启动测试,测试前需要将之前的测试数据清空。具体如图5.2所示。
在这里插入图片描述

图5.2 闲置房屋搜索平台测试图
测试完成后,有一个测试报告,打开报告可以看到,该系统一共发送了140个HTTP请求,平均响应的时间是4340,50%的用户响应时间是4145,,90%的用户的响应时间是6438,最小响应时间是1999,最大响应时间是8173,没有发生错误,错误率为0%,每秒完成的请求书,即吞吐量为2.2/sec,每秒从服务器接收到的数据量是682.66。如图5.3所示。
在这里插入图片描述
图5.3 测试结果图
5.4本章小结
本章主要叙述了测试的相关功能,使用了JMeter等测试工具来高效完成测试工作。测试是整个闲置房屋搜索平台开发过程中的一个重要组成部分,是对系统是否能够上线运营的检验。

结 论

租房子是当代在外务工的人们最重要的需求,其准确快速的执行对于租房人群和房东有重要的意义。为此,本文对于目前市场上租客以及房东所需要的针对租房的要求,设计研发了闲置房屋搜索平台。本文首先阐述目前国内相关平台的发展现状,以及对该平台需求的迫切性,其次列举开发此平台可能遇到的问题,最后对整个平台的设计思路和每个功能具体的实现方法进行了详细的说明和探讨。本文所开发的闲置房屋搜索平台已经具备基本的功能,可以较好满足人们租房和房东出租的业务需求。
本文的平台在设计与实现的过程中充分考虑了系统二次开发的可能,以及随时可变的需求等要求,具有代码重用性强,系统可伸缩性好,安全性高等特点,所采用的SpringBoot技术保证了系统具有效率高、耦合性低的特点。实际应用效果说明了本平台设计的合理性与有效性。
本平台的设计与实现有效的提高了租房的效率问题,增强了创新性、实用性,对于其他的租房网站具有广泛的借鉴意义和参考价值。由于项目紧,以及对于租房需求不断变化,本文平台还存在一定的不足。比如房屋的小区信息都是用户上传的,没有单独的消息获取来源,这是将来需要进一步完善的工作。

致 谢

经过四个月左右的时间,闲置房屋搜索平台得以实现,独立完成一个这样的平台遇到许多困难,大部分问题是由于基础信息没有掌握,这让我意识到了掌握基础知识的重要性,以及需要将学到的知识应用好的重要性。
这四年的大学生活即将结束,我马上将要开始人生的另一个征程。在完成这次毕业设计的过程中,首先感谢我的指导老师李佳佳老师和倪春雨老师对我的耐心教导,通过老师的细心指导,我论文的总体结构、功能结构和系统设计以及数据库设计都得到了完善的修改。四年时间里,我跟老师学会的不仅仅限于课堂上的知识,更多的是教会我如何为人,还有一些实用的职场技能,让我在求职的道路上少走了不少弯路。最后还要感谢其他在这四年里教授过我知识的所有老师,感谢您们可以让我的学识更加渊博,同时也感谢在这四年里帮助过我的同学们,还要感谢我的企业内的指导教师,可以包容和纠正我的各种小错误,让我成为更好的自己。

参考文献

[1] 周梅君.居住出租房屋“旅馆式”管理系统设计与应用探讨[J].科技创新与应用,2020(12):100-101
[2] Funmilayo Shittu MPH,Imaria C. Agwai MPH,Adegoke G. Falade MD,Ayobami A. Bakare MBBS,Hamish Graham PhD,Agnese Iuliano MSc,Zeus Aranda MSc,Eric D. McCollum MD,Adamu Isah MPH,Solomon Bahiru MPH,Tahlil Ahmed MD,Rochelle A. Burgess PhD,Carina King PhD,Tim Colbourn PhD,on behalf of the INSPIRING Project Consortium. Health system challenges for improved childhood pneumonia case management in Lagos and Jigawa, Nigeria[J]. Pediatric Pulmonology,2020,55
[3] 王静. 暂住人口与出租房屋管理系统的设计与实现[D].山东大学,2010
[4] Orner Kevin D.,Camacho Céspedes Fabricio,Cunningham Jeffrey A.,Mihelcic James R… Assessment of nutrient fluxes and recovery for a small-scale agricultural waste management system[J]. Journal of Environmental Management,2020,267
[5] 申永芳.基于jQuery框架的Web前端开发的研究[J].信息通信,2019(10):105-107
[6] 陈春雨,王福成,王传英,梁宇.基于jQuery框架的OA管理系统的设计与实现[J].内燃机与配件,2017(11):103-105
[7] 王晓洁,秦冰峰.基于Spring Boot2.0框架的信息管理系统的设计与实现[J].电子元器件与信息技术,2018(12):29-31
[8] 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2019,15(36):76-77
[9] Veronica Distefano,Valentina Mameli,Irene Poli. Identifying spatial patterns with the Bootstrap ClustGeo technique[J]. Spatial Statistics,2020,38.
[10] 王菲露,李军,宋杨,胡勇,陈玉峰.基于Ajax技术的ECharts实时图形报表实现[J].黑龙江工业学院学报(综合版),2019,19(12):79-83
[11] 赵晔晖.基于百度地图API的气象信息显示系统设计与实现[J].重庆科技学院学报(自然科学版),2019,21(03):84-88
[12] 王建国.Ajax技术在网站开发中的应用研究[J].湖南城市学院学报(自然科学版),2016,25(01):155-156
[13] 范曦,张海越.一个经典Ajax例子的解析[J].现代工业经济和信息化,2018,8(17):128-129
[14] 黄文娟.基于Java和MySQL的图书馆信息化管理系统设计[J].电子设计工程,2019,27(02):20-24
[15] 范开勇,陈宇收.MySQL数据库性能优化研究[J].中国新通信,2019,21(01):57
[16] 张璇,王旭,李彤,白川,康燕妮.软件非功能需求权衡代价[J].软件学报,2017,28(05):1247-1270
[17] Rémy Vincent,Mourad Ait-Ahmed,Azeddine Houari,Mohamed Fouad Benkhoris. Residential microgrid energy management considering flexibility services opportunities and forecast uncertainties[J]. Elsevier Ltd,2020,120
[18] Hui Xiao,Yiyun Zhang,Yisha Xiang,Rui Peng. Optimal design of a linear sliding window system with consideration of performance sharing[J]. Elsevier Ltd,2020,198
[19] 付佳,李宝安.Web应用软件测试方法研究[J].计算机产品与流通,2019(04):22
[20] 李欣,史宝坤,甄珍.高校图书管理系统数据库的设计与实现[J].计算机产品与流通,2020(05):196
[21] 刘海见,祁薇,姜丹.WEB应用软件教学中的编码规范研究[J].信息通信,2016(01):158-159
[22] 闫红艳.如何进行软件测试执行[J].计算机产品与流通,2019(05):35
[23] 李奥宸. 软件测试过程管理系统的设计与实现[D].山东大学,2019
[24] 陈阿妹,陈佳丽,陈斌仙.基于JMeter的Web性能测试的研究[J].九江学院学报(自然科学版),2016,31(01):70-76
[25] 支文瑜.Web性能测试分析[J].信息技术与标准化,2018(03):41-43

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

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

相关文章

微软财务GPT Excel Copilot for Finance使用攻略

功能本身不收费&#xff0c;但是这个功能需要微软的商业版office账号才能使用&#xff0c;如果你没有账号&#xff0c;可以直说。 在桌面Excel软件中登录账号后&#xff0c;点击“copilot for finance”按钮&#xff0c;如果没有出现&#xff0c;则点击“加载项”&#xff0c;…

2024 年中国高校大数据挑战赛赛题 D:行业职业技术培训能力评价完整思路以及源代码分享

中国是制造业大国&#xff0c;产业门类齐全&#xff0c;每年需要培养大量的技能娴 熟的技术工人进入工厂。某行业在全国有多所不同类型&#xff08;如国家级、 省级等&#xff09;的职业技术培训学校&#xff0c;进行 5 种技能培训。学员入校时需要 进行统一的技能考核&#xf…

简述epoll实现

所有学习笔记&#xff1a;https://github.com/Dusongg/StudyNotes 文章目录 epoll数据结构的选择&#xff1f;以tcp为例&#xff0c;网络io的可读可写如何判断&#xff1f;epoll如何做到线程安全&#xff1f;LT和ET如何实现&#xff1f;tcp状态和io的读写有哪些关系&#xff1…

文本生成视频:从 Write-a-video到 Sora

2024年2月15日&#xff0c;OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开&#xff…

CPU设计实战-协处理器访问指令的实现

目录 一 协处理器的作用与功能 1.计数寄存器和比较寄存器 2.Status寄存器 3.Cause寄存器(标号为13) 4.EPC寄存器(标号为14) 5.PRId寄存器(标号为15) 6.Config 寄存器(标号为16)-配置寄存器 二 协处理器的实现 三 协处理器访问指令说明 四 具体实现 1.译码阶段 2.执行…

git命令行提交——github

1. 克隆仓库至本地 git clone 右键paste&#xff08;github仓库地址&#xff09; cd 仓库路径&#xff08;进入到仓库内部准备提交文件等操作&#xff09; 2. 查看main分支 git branch&#xff08;列出本地仓库中的所有分支&#xff09; 3. 创建新分支&#xff08;可省…

Edu18 -- Divide by Three --- 题解

目录 Divide by Three&#xff1a; 题目大意&#xff1a; ​编辑​编辑思路解析&#xff1a; 代码实现&#xff1a; Divide by Three&#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 一个数字是3的倍数&#xff0c;那么他的数位之和也是3的倍数&#xff0c;所以我…

安信可IDE(AiThinker_IDE)编译ESP8266工程方法

0 工具准备 AiThinker_IDE.exe ESP8266工程源码 1 安信可IDE&#xff08;AiThinker_IDE&#xff09;编译ESP8266工程方法 1.1 解压ESP8266工程文件夹 我们这里使用的是NON-OS_SDK&#xff0c;将NON-OS_SDK中的1_UART文件夹解压到工作目录即可 我这里解压到了桌面&#xff0c…

WiFi模块助力少儿编程:创新学习与实践体验

随着科技的飞速发展&#xff0c;少儿编程已经成为培养孩子们创造力和问题解决能力的重要途径之一。在这个过程中&#xff0c;WiFi模块的应用为少儿编程领域注入了新的活力&#xff0c;使得学习编程不再是单一的代码教学&#xff0c;而是一个充满创新与实践的综合性体验。 物联网…

Redis作为缓存的数据一致性问题

背景 使用Reids作为缓存的原因&#xff1a; 在高并发场景下&#xff0c;传统关系型数据库的并发能力相对比较薄弱&#xff08;QPS不能太大&#xff09;&#xff1b; 使用Redis做一个缓存。让用户请求先打到Redis上而不是直接打到数据库上。 但是如果出现数据更新操作&#xff…

开发指南002-前后端信息交互规范-概述

前后端之间采用restful接口&#xff0c;服务和服务之间使用feign。信息交互遵循如下平台规范&#xff1a; 前端&#xff1a; 建立api目录&#xff0c;按照业务区分建立不同的.js文件&#xff0c;封装对后台的调用操作。其中qlm*.js为平台预制的接口文件&#xff0c;以qlm_user.…

【红外与可见光融合:条件学习:实例归一化(IN)】

Infrared and visible image fusion based on a two-stage class conditioned auto-encoder network &#xff08;基于两级类条件自编码器网络的红外与可见光图像融合&#xff09; 现有的基于自动编码器的红外和可见光图像融合方法通常利用共享编码器从不同模态中提取特征&am…

arduino安装索尼spresense开发库

arduino安装索尼spresense开发库 一.库安装二.库文件下载1.直接下载2.git下载1.git加速下载2.git下载加速3.将文件导入arduino 一.库安装 打开arduino点击文件->首选项 将以下链接添加进附加开发板管理器网址 https://github.com/sonydevworld/spresense-arduino-compatib…

什么是数据采集与监视控制系统(SCADA)?

SCADA数据采集是一种用于监控和控制工业过程的系统。它可以实时从现场设备获得数据并将其传输到中央计算机&#xff0c;以便进行监控和控制。SCADA数据采集系统通常使用传感器、仪表和控制器收集各种类型的数据&#xff0c;例如温度、压力、流量等&#xff0c;然后将这些数据汇…

【李沐】动手学习ai思路softmax回归实现

来源&#xff1a;https://www.cnblogs.com/blzm742624643/p/15079086.html 一、从零开始实现 1.1 首先引入Fashion-MNIST数据集 1 import torch 2 from IPython import display 3 from d2l import torch as d2l 4 5 batch_size 256 6 train_iter, test_iter d2l.load_data…

tcp流式服务和粘包问题

目录 1.概念 2.流式服务 3.粘包问题 1.概念 套接字是一个全双工的 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输. TCP连接是全双工的,即双方的数据读写可以通过一个连接进行,完成…

集合框架(一)List系列集合

特点 有序&#xff0c;可重复&#xff0c;有索引。 LIst集合的特有方法 /** 目标&#xff1a;掌握List系列集合的特点&#xff0c;以及其提供的特有方法* */import java.util.ArrayList; import java.util.List;public class ListTest1 {public static void main(String[] arg…

android开发环境搭建

android开发环境搭建 Android 开发环境搭建1.JDK安装与配置1.1 Jdk官方下载1.2 JDK安装1.3 环境变量配置1.4 新建JAVA_HOME1.5 修改Path变量1.6 新建classpath1.7 验证环境是否配置完成 2.开发工具二选一1.如何创建一个工程2.工程的目录结构的了解3.与开发的相关的常规视图4.我…

记录WiFi转WDS桥接再转网线

第一步&#xff1a; 把LAN口修改为 和 主路由器的前三位段位编码一致&#xff0c;最后一位设置大于250&#xff0c;减少抢IP的可能性。这个步骤是修改 桥接路由器的登录IP 第二部&#xff1a; 设置IP池。网关和dns服务器都是同一个&#xff0c;用手机连接主路由器wifi可以找到 …

【Flink】Flink 的八种分区策略(源码解读)

Flink 的八种分区策略&#xff08;源码解读&#xff09; 1.继承关系图1.1 接口&#xff1a;ChannelSelector1.2 抽象类&#xff1a;StreamPartitioner1.3 继承关系图 2.分区策略2.1 GlobalPartitioner2.2 ShufflePartitioner2.3 BroadcastPartitioner2.4 RebalancePartitioner2…