springboot基于协同过滤的租房推荐系统

摘要

随着互联网技术的飞速发展,设计一款基于协同过滤算法的租房推荐系统,以帮助租户在海量的房源信息中快速找到满足其个性化需求的租赁住房。系统通过分析租户的历史信息和偏好设置,运用协同过滤技术挖掘出租户的兴趣,并据此推荐相似度高的房源。系统还结合了评分反馈机制,根据租户对推荐结果的评价调整推荐策略,以实现更精准的匹配。该系统界面友好,操作简便,能够有效提升租户体验,为房东提供更高效的房源推广平台,具有广阔的市场应用前景。

本系统采用java语言进行编写,使用轻量级小型数据库mysql存储数据,开源的spring boot框架进行数据的封装和传输。前端页面使用htmlcssjavascrip,基于spring boot框架进行布局,最终在tomcat服务器上运行。用户通过浏览器访问网站,选择自己所需信息,管理员则通过浏览器实现对系统的管理。

租房推荐系统主要包括了三个模块:管理员、租户和房东。租户可以通过本系统查看预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的收藏等信息房东可以通过本系统查看房源信息、预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的等信息,管理员用户权限更高,可以查看租户房东、房源信息、房源类型、预约看房、租赁订单、退租信息、租赁合同、租赁评价、留言反馈、系统管理、我的信息等功能。本系统由后台数据库和前台界面组成,数据库设计合理,前端页面设计简洁大方,使用简单快捷,方便了管理员对租户信息和房东信息的管理。

关键词:租房推荐; spring boot框架;java语言;

Abstract

With the rapid development of Internet technology, a rental recommendation system based on collaborative filtering algorithm is designed to help tenants quickly find the rental housing that meets their individual needs in the massive housing information. By analyzing the historical information and preferences of the tenants, the system uses collaborative filtering technology to find the interest of the tenants, and then recommends the housing with high similarity. The system also combines the scoring feedback mechanism to adjust the recommendation strategy according to the tenant's evaluation of the recommendation result, so as to achieve more accurate matching. The system has friendly interface and easy operation, can effectively improve the tenant experience, provide a more efficient housing promotion platform for landlords, and has broad market application prospects.

The system is written in java language, uses lightweight and small database mysql to store data, and the open source spring boot framework for data encapsulation and transmission. The front-end page uses html, css and javascrip, and is laid out based on the spring boot framework, and finally runs on the tomcat server. Users access the website through the browser and select the information they need. Administrators manage the system through the browser.

The rent recommendation system mainly includes three modules: administrator, tenant and landlord. Tenants can view the information of booking, lease order, rent-out information, lease contract, lease evaluation, my collection and so on through this system. Landlords can view the information of housing supply, booking, lease order, rent-out information, lease contract, lease evaluation, my information and so on through this system. Administrators have higher rights. You can view the tenant, landlord, housing information, housing type, booking to see the house, lease order, rental cancellation information, lease contract, lease evaluation, message feedback, system management, my information and other functions. This system is composed of background database and front interface, database design is reasonable, front-end page design is simple and generous, simple and quick to use, convenient administrator to tenant information and landlord information management.

Key words: rent recommendation; spring boot framework; java language

目    录

1  概述

1.1 课题研究背景与意义

1.2 国内外研究现状

1.3课题研究内容

2  系统开发环境及相关技术

2.1 Java技术简介

2.2 Spring Boot框架

2.3 MySql数据库

2.4 B/S结构

2.5 VUE框架

2.6 协同过滤算法

2.7人脸识别技术的概念

3系统需求分析

3.1系统可行性分析

3.1.1 技术可行性

3.1.2 操作可行性

3.1.3 经济可行性

3.1.4 法律可行性

3.2 功能需求分析

3.3 系统流程分析

3.3.1 用户登录流程

3.3.2 系统操作流程

3.3.3 添加信息流程

4系统设计

4.1 功能模块设计

4.2 系统数据库设计

4.2.1 数据库系统

4.2.2 数据库概念设计

4.2.3 数据表设计

4.2.4 数据表的建立

5系统实现

5.1前台功能实现

5.1.1系统首页页面

5.1.2个人中心

5.2后台模块实现

5.2.1管理员功能实现

5.2.2房东功能实现

6系统测试

6.1 测试方法与步骤

6.2 登录模块测试

6.3 测试用例

结论

致谢

参考文献

1  概述

1.1 课题研究背景与意义

随着城市化进程的加速和人口流动性的增加,租房市场呈现出日益繁荣的趋势。互联网技术的发展使得在线租房平台流行起来,为租户提供了便捷的租赁服务。伴随着房源信息的激增,租户在寻找合适房源时往往需要耗费大量时间和精力筛选信息,这种信息过载现象严重影响了租房体验和效率。为了解决这一问题,推荐系统应运而生,其中协同过滤作为主流的推荐技术之一,因其较高的准确度和租户满意度被广泛应用于多个领域。协同过滤通过分析用户的历史行为和偏好,识别相似用户或物品,进而提供个性化的推荐。传统的协同过滤算法在面对冷启动问题、稀疏性问题以及大规模信息处理时仍存在挑战。研究和开发更为高效、准确的租房推荐系统具有重要的实际意义和应用价值。

设计一个基于协同过滤的租房推荐系统,可以显著提高租户在租房平台上的查找效率,降低信息筛选的时间成本,提升租户体验。系统通过深入分析租户的租房需求和偏好,能够发现租户可能感兴趣的房源,使推荐更加个性化和精准化。对于房东而言,推荐系统能够帮助他们更有效地触达潜在租户,提升房源的曝光率和租赁概率。从社会层面来看,租房推荐系统的发展和完善有助于促进租房市场的健康有序发展,为城市租户提供更优质的居住选择。技术上,本课题的研究还将推动协同过滤算法在处理大规模信息集时的性能优化,为其他领域的推荐系统研究提供参考和借鉴,具有广泛的理论和实践价值。

1.2 国内外研究现状

在中国,随着在线租房平台的兴起,基于协同过滤的租房推荐系统受到了学术界和工业界的广泛关注。众多研究者致力于改进传统的协同过滤算法,以解决数据稀疏性和冷启动问题,提高推荐的准确度和用户的满意度。一些研究通过融合内容信息来增强协同过滤的性能,例如结合用户个人属性、房源特征和环境因素等。国内的互联网企业也在积极探索利用大数据和人工智能技术优化租房推荐体验,如链家、贝壳找房等平台均在不断尝试和迭代其推荐算法。然而,面对不断变化的市场需求和用户行为模式,国内的研究和应用仍需要进一步的探索和完善。

在国际上,租房推荐系统作为推荐系统领域的一个重要分支,已经取得了一系列的研究成果。国外研究者不仅在协同过滤算法的优化上进行了深入研究,还在多维度数据的融合、上下文感知推荐以及跨领域推荐等方面进行了探索。例如,通过结合社交网络信息、用户行为日志和地理位置数据,研究者们试图构建更为全面和动态的用户画像,以提高推荐的个性化水平。为了应对大规模信息处理的挑战,分布式计算和高性能计算资源也被逐渐应用于租房推荐系统的开发中。由于文化差异、市场特性和法律法规的不同,国外的研究成果并不能完全适用于中国租房市场,因此需要在借鉴国际经验的基础上,针对国内市场进行本土化的创新和实践。

1.3课题研究内容

本系统以Java为编程语言,并引入了基于用户相似度的协同过滤算法,用于提供个性化的推荐功能。系统通过echarts技术展示可视化大屏,将数据进行展示在看板上。结合了Spring boot框架进行开发。数据存储和管理方面,我们选择了MySQL数据库作为解决方案。在前端设计中,我们采用了HTML、CSS和JavaScript技术,以实现用户界面的交互性和可用性。为了提高开发效率,我们选用了Eclipse作为开发工具,其强大的功能和易用性使得编程工作更加高效。我们还使用了MySQL作为数据库管理工具,以便更方便、快捷地进行数据库操作。通过这样的技术栈选择,我们确保了管理系统的开发流程既高效又稳定。通过API接口实现对人脸的识别、比对、聚类等操作。该API接口采用了先进的人脸识别算法,可以快速、准确地识别人脸,同时支持多种数据传输方式,包括HTTP、HTTPS等。该API接口还提供了完善的安全保障机制,确保数据的安全性。系统分管理员、租户和房东三个角色,主要包括对租户房东、房源信息、房源类型、预约看房、租赁订单、退租信息、租赁合同、租赁评价、留言反馈、系统管理、我的信息等进行管理。

2  系统开发环境及相关技术

2.1 Java技术简介

Java是一种广泛使用的计算机编程语言,具有跨平台、面向对象、安全性高等特点。它是一种高级语言,可以编写各种类型的应用程序,包括桌面应用程序、移动应用程序、企业级应用程序等。Java技术的核心是Java虚拟机(JVM),它负责将Java代码编译成字节码,在各种操作系统和硬件平台上运行。这使得Java程序具有良好的可移植性和兼容性,只需编写一次代码,就可以在不同的环境中运行。Java还提供了丰富的类库和框架,可以帮助开发人员快速构建复杂的应用程序。例如,Spring框架是一个用于开发企业级应用程序的开源框架,它提供了一套完整的解决方案,包括数据访问、事务管理、安全认证等功能。Java还支持多线程编程,可以充分利用现代计算机的多核处理器,提高程序的执行效率。它还具有垃圾回收机制,可以自动管理内存资源,减少内存泄漏和程序崩溃的风险。Java技术具有强大的功能和广泛的应用前景,是当今软件开发领域不可或缺的一部分。

2.2 Spring Boot框架

Spring Boot是一个开源的Java框架,它旨在简化基于Spring的应用程序的创建、配置和部署。Spring Boot的主要目标是提供一种快速、敏捷和可扩展的方式来构建Java应用程序。通过自动配置和约定优于配置的原则,Spring Boot使得开发人员能够更专注于业务逻辑的开发,而不需要花费大量时间在项目的配置和管理上。

Spring Boot的核心特性包括以下几个方面:

(1)自动配置:Spring Boot可以根据项目中的依赖关系自动配置相应的组件,如数据库连接、Web服务器等。这使得开发人员无需手动配置这些组件,从而大大减少了项目的初始设置时间。

(2)起步依赖:Spring Boot提供了一系列的“起步依赖”,这些依赖包含了项目开发所需的基本组件,如Spring Web、Spring Data JPA等。开发人员只需添加相应的起步依赖,即可快速搭建一个基本的Spring应用程序。

(3)内嵌服务器:Spring Boot支持内嵌Tomcat、Jetty等Web服务器,使得应用程序可以独立运行,无需额外的部署步骤。此外,Spring Boot还提供了生产就绪的功能,如性能指标监控、外部配置等,方便开发人员进行生产环境的部署和管理。

(4)约定优于配置:Spring Boot遵循约定优于配置的原则,通过一系列默认的配置和约定,使得项目更加简洁、易于理解。开发人员可以根据实际需求修改这些默认配置,以满足项目的特定需求。

(5)模块化:Spring Boot支持模块化的开发方式,可以将项目拆分为多个独立的模块,每个模块负责一个特定的功能。这使得项目结构更加清晰,便于团队协作和代码维护。

Spring Boot是一个非常强大的Java框架,它通过自动配置、起步依赖、内嵌服务器等功能,极大地简化了基于Spring的应用程序的开发过程。对于Java开发人员来说,学习和掌握Spring Boot无疑是提高开发效率、提升项目质量的重要途径。

2.3 MySql数据库

MySql是由瑞典MySql AB公司开发的关系型数据管理系统,是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口用于创建、访问、管理、搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读取速度相对较慢,所以现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大量数据。

Sql语句是用于访问数据库的标准化语言。由于其速度快、体积小、总体成本低,MySql成为中小型网站开发最常用的网络数据库。

2.4 B/S结构

B/S结构是一种网络应用程序架构模式。在这种模式下,客户端(浏览器)通过互联网与服务器进行通信,服务器负责处理数据和业务逻辑,客户端只需负责展示和交互。这种结构简化了客户端的开发和维护,降低了系统的复杂度,提高了系统的可扩展性和安全性。常见的B/S结构应用有网页浏览、在线购物、在线教育等。

2.5 VUE框架

Vue.js是一个用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。核心库只关注视图层,易于上手,同时也便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。在项目中使用Vue.js时,我们通常会将它作为我们的视图层库来使用。这意味着我们可以将数据绑定、事件处理等功能交给Vue.js来完成,而我们自己则只需要关注如何渲染视图即可。Vue.js还提供了许多实用的工具和插件,可以帮助我们更好地完成开发工作。

2.6 协同过滤算法

协同过滤算法是一种广泛应用于推荐系统的技术,它通过分析用户的历史行为和相似用户的行为,为用户推荐可能感兴趣的商品或服务。该算法基于一个基本假设:如果两个用户在过去对某些商品或服务有相似的行为或评价,那么他们在未来对其他商品或服务的行为或评价也应该是相似的。

协同过滤算法主要分为两类:基于用户的协同过滤和基于物品的协同过滤。基于用户的协同过滤首先计算目标用户与其他用户之间的相似度,然后根据相似用户的喜好为目标用户推荐商品或服务。而基于物品的协同过滤则是计算物品之间的相似度,根据目标用户历史喜欢的物品为他推荐相似的其他物品。

2.7人脸识别技术的概念

人脸识别技术是一种先进的生物特征识别技术,它利用计算机视觉和机器学习算法来分析人脸的特征点,从而实现身份的自动识别。这一技术的关键在于将捕获的面部图像转化为数字信息,通过算法提取面部的关键特征,如眼睛、鼻子、嘴巴的位置以及脸部轮廓线等,将这些数据与数据库中存储的面部信息进行匹配,以验证个人身份。人脸识别技术的应用非常广泛,它不仅用于安全监控和门禁系统,还被应用于智能手机解锁、支付验证、机场安检等多个领域。随着深度学习等人工智能技术的发展,人脸识别的准确性和速度都有了显著提升,使得它成为了一个越来越受欢迎的身份验证手段。这项技术同时也引发了隐私和伦理方面的担忧。人们担心自己的面部信息可能被滥用,导致隐私泄露或被用于不正当的监视。因此,如何在提升技术效能的同时保护个人隐私,成为了人脸识别技术发展中的一个重要议题。尽管如此,随着相关法规和技术的发展,人脸识别技术仍有望在确保安全和隐私的前提下,为社会带来更多的便利和进步。

3系统需求分析

在当今的社会生活中,互联网已经变得非常普遍和重要。充分利用互联网大数据等技术可以解决很多问题。租房推荐管理也面临着自身的问题。根据这一普遍现象,租房推荐制度的出现需求巨大。该系统可以很好地解决这些问题。系统中这三类用户的数据在系统中非常关键,因此系统数据应该被组织起来,因为数据是以某种格式存储的,而不是无序的。其概念是,它可以根据长期稳定的格式在计算机内存中共享。数据库管理系统主要用于保存、修改和添加索引数据以及设置数据库。为了确保系统数据管理的顺利进行,一些有能力的处理器可以在不需要专业人员处理的情况下管理数据。创建数据表时,可以调整、重新组织和重建数据表中的数据,以确保数据可靠性。在数据库系统设计中,MySQL主要用于实现数据的集中管理。各方面表现良好。

3.1系统可行性分析

3.1.1 技术可行性

本系统在技术层面使用eclipse作为java开发环境,后台管理系统使用了spring boot等开源框架,本系统选择mysql数据库系统来开发完成本租房推荐系统。作为软件工程专业的学生,在大学开设的相关专业课程中都包含了这些技术,所以在系统开发技术及应用上都没有太大困难,因此系统开发在技术层面是完全可行的。

3.1.2 操作可行性

租房推荐系统在为管理员、租户和房东提供一个简单方便快捷的租房推荐系统。租房推荐系统的界面简洁,操作方便,即使是不具备很强的网络技术知识的用户也可以轻松使用。在管理员管理模块中,各项内容的管理操作界面也都简洁易懂的,实际操作也十分的简单,能满足基本的信息管理系统需要。因此该系统具有可操作性。

3.1.3 经济可行性

本项目所有功能的开发都是由本人独立完成,而且开发中使用的所有技术及工具也都开源的,易于学习和掌握的,所有省去了请专家开发指导的大笔费用,本系统的开发对计算机的软硬件的要求较低,因此这个系统在经济方面是完全可行的。

3.1.4 法律可行性

租房推荐系统属于自己设计的管理系统,因为这个系统在数据管理方面以及软件方面都是应用自己开发的开源代码,不存在模仿或盗用其他人的软件问题,是非常合法的。

从上面给大家讲解的过程不难看出,租房推荐系统是一个全面优质的系统,我们开发的这个程序也是存在合法和必然性的,而且在技术方面也是过硬的,还节约了成本,难度不大,很适合用户进行操作。

3.2 功能需求分析

租房推荐系统综合网络空间开发设计要求。目的是将租房推荐通过网络平台将传统管理方式转换为在线上管理,完成租房推荐的方便快捷、安全性高、交易规范做了保障,目标明确。租房推荐系统可以将功能划分为用户的租户功能、房东功能管理员功能。

(1)、租户关键功能包含个人中心、修改密码、预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的收藏等功能。租户用例如下:

图3-1租户用例图

2)、房东关键功能包含首页、房源信息、预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的信息等功能。房东用例如下:

图3-2房东用例图

3)、管理员的功能是最高的,可以对系统所在功能进行查看,修改和删除,包括租户和房东的功能。管理员用例如下:

图3-3管理员用例图

3.3 系统流程分析

3.3.1 用户登录流程

登录流程实现了管理员和其他用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-4所示。

3-4登录流程图

3.3.2 系统操作流程

系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。

同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-5所示。

3-5系统操作流程图

3.3.3 添加信息流程

系统的正常运行离不开数据的支撑,因此,在本系统中添加了数据插入功能,数据库中数据的缺失,会直接影响到数据的查询结果,查询结果错误又会导致逻辑处理出现偏差,最终导致系统性错误或故障,所以在对系统进行数据添加操作时,必须要对数据进行合法性校验,确定此条数据是否有惟一的主关键字和字段是否允许为空等等,若数据库表中不允许某字段为空,而程序没有进行该字段非空逻辑校验,那么就会出现数据存储失败,可能因此造成严重系统后果。添加信息流程如图3-6所示。

3-6添加信息流程图

4系统设计

4.1 功能模块设计

租房推荐系统按照权限的类型进行划分,分为管理员、租户和房东三个模块。主要实现租户房东、房源信息、房源类型、预约看房、租赁订单、退租信息、租赁合同、租赁评价、留言反馈、系统管理、我的信息等功能进行操作,增强了用户的操作体验。管理员模块主要针对整个系统的管理进行设计,提高了管理的效率和标准。系统的总体模块设计如下图所示:

图4-1 系统总体模块设计

4.2 系统数据库设计

4.2.1 数据库系统

本系统采用MySQL来进行数据库的管理。MySQL数据库具有体积小、速度快、成本低等优点。具备同时处理数千万条记录,实现大型数据库的高并发读写和高效读写需求。

4.2.2 数据库概念设计

概念模型用于对信息世界建模,并与指定的数据库管理系统分离。它有助于将真实世界的事物抽象为适合于数据库管理系统的数据库模型。人们倾向于将现实世界抽象为信息世界,再把信息世界变成机器世界。也就是说,将现实世界的目标抽象成独立于专用计算机软件和专用数据库管理系统的信息结构的数据模型,然后将物理模型转化为适合电子计算机的数据库管理系统。事实上,数据模型是从真实世界到机器世界的中间层。

信息世界的基本要素包括实体和关联。现实存在且彼此可区别的事物称为实体[13]实体可以是实际的人、事或物,还可以是抽象化的概念或联络。以下将“房东租户留言反馈预约看房租赁合同租房资讯”等作为实体,它们的局部E-R图,如图4-2所示:

4-2局部E-R图

4.2.3 数据表设计

本设计根据数据表管理系统的具体流程进行管理,方便管理员、租户和房东对数据的添加、删除、修改和查询等操作。

4.2.4 数据表的建立

系统采用Navicat Premium对数据库进行操作,数据库管理操作简单,数据处理能力强。数据表建立如下:

表4-1留言反馈

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

表4-2房源信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fangyuanmingcheng

varchar

200

房源名称

fangyuanleixing

varchar

200

房源类型

suozaixiaoqu

varchar

200

所在小区

huxing

varchar

200

户型

louceng

varchar

200

楼层

mianji

varchar

200

面积

jiage

double

价格/月

zhuangtai

varchar

200

状态

zhuangxiuqingkuang

varchar

200

装修情况

zulinyaoqiu

varchar

200

租赁要求

fangyuanshipin

longtext

4294967295

房源视频

fabushijian

date

发布时间

fangyuanjieshao

longtext

4294967295

房源介绍

fangyuantupian

longtext

4294967295

房源图片

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

storeupnum

int

收藏数

0

表4-3租赁订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

fangyuanmingcheng

varchar

200

房源名称

fangyuanleixing

varchar

200

房源类型

suozaixiaoqu

varchar

200

所在小区

huxing

varchar

200

户型

louceng

varchar

200

楼层

mianji

varchar

200

面积

jiage

double

价格/月

yueshu

int

月数

zongjia

double

总价

zulinriqi

date

租赁日期

zulinbeizhu

varchar

200

租赁备注

fangyuantupian

longtext

4294967295

房源图片

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

zuhuzhanghao

varchar

200

租户账号

zuhuxingming

varchar

200

租户姓名

dianhua

varchar

200

电话

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

ispay

varchar

200

是否支付

未支付

表4-4租赁评价

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

fangyuanmingcheng

varchar

200

房源名称

fangyuanleixing

varchar

200

房源类型

fangyuantupian

longtext

4294967295

房源图片

shushi

varchar

200

舒适

huanjing

varchar

200

环境

fuwu

varchar

200

服务

pingjiashijian

datetime

评价时间

pingjianeirong

longtext

4294967295

评价内容

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

zuhuzhanghao

varchar

200

租户账号

zuhuxingming

varchar

200

租户姓名

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

shhf

longtext

4294967295

回复内容

表4-5房源类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fangyuanleixing

varchar

200

房源类型

表4-6租户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zuhuzhanghao

varchar

200

租户账号

mima

varchar

200

密码

zuhuxingming

varchar

200

租户姓名

xingbie

varchar

200

性别

dianhua

varchar

200

电话

touxiang

longtext

4294967295

头像

表4-7租赁合同

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

hetongbianhao

varchar

200

合同编号

hetongmingcheng

varchar

200

合同名称

qiandingriqi

date

签订日期

daoqishijian

date

到期时间

hetongfujian

longtext

4294967295

合同附件

hetongbeizhu

varchar

200

合同备注

hetongtupian

longtext

4294967295

合同图片

zuhuzhanghao

varchar

200

租户账号

zuhuxingming

varchar

200

租户姓名

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

表4-8房东

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fangdongzhanghao

varchar

200

房东账号

mima

varchar

200

密码

fangdongxingming

varchar

200

房东姓名

xingbie

varchar

200

性别

dianhua

varchar

200

电话

touxiang

longtext

4294967295

头像

表4-9预约看房

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fangyuanmingcheng

varchar

200

房源名称

fangyuanleixing

varchar

200

房源类型

fangyuantupian

longtext

4294967295

房源图片

kanfangshijian

datetime

看房时间

kanfangbeizhu

varchar

200

看房备注

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

zuhuzhanghao

varchar

200

租户账号

zuhuxingming

varchar

200

租户姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-10配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

url

varchar

500

url

表4-11用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

image

varchar

200

头像

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-12退租信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

fangyuanmingcheng

varchar

200

房源名称

fangyuanleixing

varchar

200

房源类型

suozaixiaoqu

varchar

200

所在小区

huxing

varchar

200

户型

louceng

varchar

200

楼层

mianji

varchar

200

面积

jiage

double

价格/月

tuizuriqi

date

退租日期

tuizubeizhu

varchar

200

退租备注

fangyuantupian

longtext

4294967295

房源图片

fangdongzhanghao

varchar

200

房东账号

fangdongxingming

varchar

200

房东姓名

zuhuzhanghao

varchar

200

租户账号

zuhuxingming

varchar

200

租户姓名

dianhua

varchar

200

电话

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-13token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-14收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-15租房资讯分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

typename

varchar

200

分类名称

表4-16租房资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

typename

varchar

200

分类名称

name

varchar

200

发布人

headportrait

longtext

4294967295

头像

clicknum

int

点击次数

0

clicktime

datetime

最近点击时间

thumbsupnum

int

0

crazilynum

int

0

storeupnum

int

收藏数

0

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

5系统实现

5.1前台功能实现

5.1.1系统首页页面

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:

图5-1 系统首页界面

在注册流程中,租户Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知租户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册页面如图5-2所示:

图5-2租户注册页面

房源信息:在房源信息页面的输入栏中输入房源名称、房源类型、所在小区、户型、楼层、面积、价格/月、状态、装修情况、租赁要求、发布时间、房东账号、房东姓名、点击次数进行查询,可以查看到房源详细信息,并进行租房、看房或收藏操作;房源信息页面如图5-3所示:

图5-3房源信息详细页面

5.1.2个人中心

个人中心:在个人中心页面可以对个人中心、修改密码、预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的收藏进行详细操作;如图5-4所示:

图5-4个人中心界面

5.2后台模块实现

在登录流程中,用户首先在Vue前端界面输入用户名和密码及进行人脸识别登录。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。后台登录界面图5-5所示。 

图5-5后台登录界面

5.2.1管理员功能实现

管理员进入主页面,主要功能包括对首页、租户房东、房源信息、房源类型、预约看房、租赁订单、退租信息、租赁合同、租赁评价、留言反馈、系统管理、我的信息等进行操作。管理员主页面如图5-6所示:

图5-6管理员主界面

租户功能在视图层(view层)进行交互,比如点击搜索、增加或删除按钮或填写租户信息表单。这些租户表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除租户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便租户功能可以看到最新的信息或相应的操作反馈。租户界面如图5-7所示:

图5-7租户界面

房东功能在视图层(view层)进行交互,比如点击搜索、增加或删除按钮或填写房东信息表单。这些房东表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除房东信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便房东功能可以看到最新的信息或相应的操作反馈。房东界面如图5-8所示:

图5-8房东界面

房源信息功能在视图层(view层)进行交互,比如点击搜索、增加、审核或删除按钮或填写房源信息表单。这些房源信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除房源信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便房源信息功能可以看到最新的信息或相应的操作反馈。房源信息界面如图5-9所示:

图5-9房源信息界面

预约看房功能在视图层(view层)进行交互,比如点击搜索、删除或审核按钮或填写预约看房信息表单。这些预约看房表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、删除预约看房信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便预约看房功能可以看到最新的信息或相应的操作反馈。预约看房界面如图5-10所示:

图5-10预约看房界面

租赁订单功能在视图层(view层)进行交互,比如点击搜索、删除或审核按钮或填写租赁订单信息表单。这些租赁订单表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、合同或删除租赁订单信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便租赁订单功能可以看到最新的信息或相应的操作反馈。租赁订单界面如图5-11所示:

图5-11租赁订单界面

退租信息功能在视图层(view层)进行交互,比如点击搜索、删除或审核按钮或填写退租信息表单。这些退租信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除退租信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便退租信息功能可以看到最新的信息或相应的操作反馈。退租信息界面如图5-12所示:

图5-12退租信息界面

租赁合同功能在视图层(view层)进行交互,比如点击搜索或删除按钮或填写租赁合同信息表单。这些租赁合同表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除租赁合同信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便租赁合同功能可以看到最新的信息或相应的操作反馈。租赁合同界面如图5-13所示:

图5-13租赁合同界面

留言反馈功能在视图层(view层)进行交互,比如点击搜索或删除按钮或填写留言反馈信息表单。这些留言反馈表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、回复或删除留言反馈信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便留言反馈功能可以看到最新的信息或相应的操作反馈。留言反馈界面如图5-14所示:

图5-14留言反馈界面

系统管理,租房资讯功能在视图层(view层)进行交互,比如点击搜索、增加或删除按钮或填写租房资讯信息表单。这些租房资讯表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更新或删除租房资讯信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便租房资讯功能可以看到最新的信息或相应的操作反馈。还可以对租房资讯分类、轮播图管理进行相应操作;租房资讯界面如图5-15所示:

图5-15系统管理界面

5.2.2房东功能实现

房东进入主页面,主要功能包括对首页、房源信息、预约看房、租赁订单、退租信息、租赁合同、租赁评价、我的信息等进行操作。房东主页面如图5-16所示:

图5-16房东主界面

6系统测试

6.1 测试方法与步骤

本系统首先在本地服务器上进行了安装和测试,之后鉴于对系统的结构和处理方法的充分熟悉和对系统特性的充分了解对系统进行了白盒测试和黑盒试验。

在发展软件系统的整个过程中,人们必须面临错综复杂性的实际问题,所以,在软件系统生存周期的各个过程中都必然地会形成错误。应用软件检测目的在于:出现出错并运行某个程序的步骤,而应用软件检测的最重要目的便是找到其中尚未发生的出错。

为了制定出合理的测试计划,根据以下原则开始了测量任何测试都要追溯到客户需要当确定了客户使用模型后就要着手制定测试计划,并在编码以前就对整个软件测试工作做出规划和制定御用Pareto原理,主要对占出了百分之八十九以上的最易于出错的约百分之二十的模板实施了检测,并从小规模开始逐步实施大量检测,范围一般从主要检测单编程模板再到完全集成的模板;同时精心设计了检测方法,尽可能地全面覆盖所有程序逻辑并使其满足要求的能力。

测试环境,软件硬件配置清单见下表。

6.1 测试环境表

设备名称

硬件配置

应用程序

服务器端

处理器

1.6GHz 双核 Intel Core i5 (Turbo Boost 最高可达 3.6GHz),配备 4MB 三级缓存

jdk1.8,

tomcat9.0.12,

Mysql8.0

maven3.5

内存

8 GB

主硬盘

128GB PCIe 固态硬盘

网卡

802.11a/b/g/n

客户端

处理器

1.6GHz 双核 Intel Core i5 (Turbo Boost 最高可达 3.6GHz),配备 4MB 三级缓存

macOS

内存

8 GB

主硬盘

128GB PCIe 固态硬盘

显卡

Intel UHD Graphics 617

网卡

802.11a/b/g/n

6.2 登录模块测试

进入本系统时根据不同登录方式区分租户、房东以及管理员的登录。三者登录均需填写用户名和密码填写了错误的用户名或密码时将提示“用户名或密码错误”,按确认按钮返回注册窗口。登录界面简介且高效,输入错误后返回注册窗口也不会卡顿。

6.3 测试用例

系统在采用单元测试的方法,对系统各模块进行测试,检测流程必须严格遵循检测的标准流程进行单位检测子系统检测和控制系统检测。经过单位检测就检查出了控制系统中各个模块内在的错误经过子系统检测发现了模板之间相互协作与沟通上的出错经过集成测试发现了流程中出现的错误通过修正,确定了租房推荐系统能够实现需求分解中确定的技术要求。根据单元测试对系统进行集成测试,判断各功能组合完成后是否存在逻辑和功能上的错误,保证系统集成后不会出现bug。最后,对系统进行系统测试,确保整个系统的完整性和功能的流通性。

通过租户对系统进行完整的统测试,并对相应的测试进行了详细的测试用例制作,同时记录了详细测试过程,形成了相关的系统测试文档具体测试用例如下:

6.2 注册测试用例

测试对象

测试案例

操作说明

实际结果

是否通过

注册

租户

未注册租户登录提示请注册

得到相应信息提示

6.3 后台管理员测试用例

测试对象

测试案例

操作说明

实际结果

是否通过

后台管理员管理权限

添加管理员

点击后台管理员/管理员列表/添加管理员按钮

显示添加管理员弹框

点击后台管理员/管理员列表/取消管理员按钮

关闭弹框

搜索管理员

在输入框中输入要找的管理员(用户名/手机号/邮箱)点击搜索按钮

显示搜索到的管理员结果

编辑管理员权限/信息

点击要编辑的管理员

显示要编辑管理员的弹框

删除管理员

点击删除管理员

显示删除管理员弹窗/确认删除

结论

本课题主要对现代社会租房推荐管理的现状做了分析,最终确认了租房推荐系统的可行性,然后对其进行分析和设计,介绍了系统的大概模块与功能,着重介绍了数据库的详细设计,字段、属性及说明,展示了部分模块的设计界面。

这个系统是对我大学四年学习生涯的总结于回顾,四年里我没有单独完成过一项功能完善的系统,这是第一次。过程中我对很多知识有了更深刻的了解与掌握,将许多大学里学到的零零散散的知识整合融汇到了一起并加以运用。深刻理解了开发过程中的B/S开发模式,对各个层次的功能划分掌握地更加透彻。对数据库SQL语句运用更加熟练,掌握到了MySQL连接数据库的基本步骤以及对数据连接池技术的了解;对线程的有了更进一步的了解,并且能够熟练使用简单的线程池技术。

开发过程中,我遇到过不少问题,比如日期格式的相互转换问题;不会使用Mybatis中@param注解导致参数传递出问题;还有就是对框架运用不熟练的问题,这些都曾成为阻碍我的绊脚石,但是经过老师的指导与同学的帮助,我都一一将它们克服,并最终完成了这个系统。但是由于自生能力不足,以及时间限制,系统还存在着诸多不足之处,都需要以后慢慢打磨修改,最终将其完善。

展望

4G时代氤氲而生了许多新兴产物以及互联网的普及,方便了人们的生活,提高了人们的生活质量。21世纪的科技发展极其迅猛,5G已经萌芽,相信在未来几年5G将会慢慢普及,在5G时代里一定会诞生出更加方便安全的信息管理系统供与人们使用,相信那将彻底改变人们的生活方式。身处21世纪的我们一定要跟上时代的步伐,努力学习更多新科技、新知识,争取走在时代的前沿,走在科技的前沿,做时代的弄潮儿。

致谢

经过长时间的分析、开发与总结,系统和论文工作终于接近了尾声,这也意味着我的大学生活即将结束,心中无限感慨。

首先,我想感谢生我养我的父母,他们每日辛辛苦苦地劳作,供我长大成人。父母是孩子的第一任老师,是他们的善良激励我前行,是他们无怨无悔的付出让我迎难而上。

其次,我要感谢全体老师,他们无私奉献,将自己的知识全部教授与我,教会我技能,帮助我填补知识的空缺乃至人生的空缺,大学生活因为老师们的奉献而色彩斑斓。尤其是我的指导老师,在我毕设期间给予了我充分的教导和帮助,在我方向出错时候及时纠正,督促我前行。

最后,我要感谢帮助过我的同学们。是他们在我设计遇到问题时积极伸出援助之手,是他们陪伴我度过了充实的大学四年。

参考文献

[1]袁琳琳. 计算机软件Java编程特点及技术分析 [J]. 数字通信世界, 2023, (12): 87-89.

[2]马庆. 计算机软件开发中JAVA编程语言的应用 [J]. 山西电子技术, 2023, (06): 84-86+98.

[3]张国芳. Java编程语言在计算机软件开发中的应用方向分析 [J]. 信息记录材料, 2023, 24 (11): 138-141.

[4]刘小丹. C++与Java程序设计语言的特征研究 [J]. 电脑编程技巧与维护, 2023, (10): 52-54.

[5]尹应荆. JAVA编程语言在计算机软件开发中的应用 [J]. 石河子科技, 2023, (05): 45-47.

[6]尉译心. Java程序设计课程的教学设计与实践分析 [J]. 电子技术, 2023, 52 (09): 364-365.

[7]袁琳琳. 浅析Java语言在计算机软件开发中的应用 [J]. 信息记录材料, 2023, 24 (09): 81-83.

[8]闫立誉. 基于Java平台开发的软件保护技术探究 [J]. 数字技术与应用, 2023, 41 (08): 199-201.

[9]朱金波. Java编程语言在计算机软件开发中的应用优势分析 [J]. 信息记录材料, 2023, 24 (05): 68-70.

[10]邓阳名, 顾潇, 梁爱媚. 基于Java语言的数据库访问技术应用研究 [J]. 中国新通信, 2023, 25 (08): 83-85.

[11]杨华, 徐扬. MySQL数据库对中文编码支持的探讨 [J]. 网络安全和信息化, 2023, (10): 157-160.

[12]李艳杰. 基于MySQL数据库的数据安全应用设计 [J]. 现代信息科技, 2023, 7 (12): 151-154.

[13]李艳杰. MySQL数据库下存储过程的综合运用研究 [J]. 现代信息科技, 2023, 7 (11): 80-82+88.

[14]Oswald C . Java Basics Using ChatGPT/GPT-4[M].Mercury Learning and Information:2023-12-28.

[15]Diego M ,A. C F . Lightweight precise automatic extraction of exception preconditions in java methods[J]. Empirical Software Engineering,2023,29(1).

[16]Oswald C . Java Basics Using ChatGPT/GPT-4[M].Mercury Learning and Information:2023-12-26..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值