跳到主要内容
基于 SSM 框架的 Web 房屋销售管理系统设计与实现 | 极客日志
Java java
基于 SSM 框架的 Web 房屋销售管理系统设计与实现 综述由AI生成 基于 SSM 框架和 MySQL 数据库设计并实现了 Web 房屋销售管理系统。系统采用 B/S 架构,分为普通用户、销售人员和管理员三种角色。核心功能包括房屋信息管理、预约看房、资讯发布及权限控制。通过可行性分析、数据库设计及系统测试,验证了系统的稳定性与安全性,满足房屋销售流程的网络化管理需求。
Qiny01 发布于 2026/3/16 更新于 2026/4/26 6 浏览摘 要
随着国民生活水平的提高,人们日益重视休闲旅游,而互联网的普及也为房屋销售管理带来了新的机遇。将房屋租赁产业与互联网相结合,利用 SSM 框架建设房屋销售管理系统,实现房屋销售管理的网络化,对提高国民经济发展水平和丰富人们精神生活具有积极促进作用。
该系统从需求分析、结构设计、数据库设计到系统实现,采用了 SSM 框架。系统分为前端实现和后端实现,力求结合实际需求找出切实可行的开发方案。通过借助 Java 编程语言和 MySQL 数据库,完成系统的各项功能,包括首页展示、个人信息管理、用户管理、房屋管理、预约信息管理、资讯管理、权限管理、密码修改等。
在系统设计与实现过程中,我们注重用户体验和系统稳定性,经过反复研究和学习,不断优化系统功能。通过系统测试,检测权限和漏洞,完善系统,确保符合标准,提供高效的房屋销售管理服务。
关键词:房屋销售管理系统;SSM 框架;Web 技术;Java 编程语言;MySQL 数据库。
第 1 章 绪论
1.1 研究背景与意义
随着全球经济的蓬勃发展,信息管理成为各经济领域提出的新管理理念,强调信息在决策中的重要性。随着社会的不断进步,管理信息系统作为利用计算机软硬件资源管理数据的关键人机系统变得日益普及。在当今时代,房屋作为人类生活的重要组成部分,城市中的流动人口增加为房屋销售产业带来了无限的发展空间。
然而,房屋销售领域存在诸多问题,如繁琐的数据处理、复杂的合同管理以及繁重的报表生成等挑战。为了适应社会发展的需要,经过对社会现状和现有问题的分析,我们提出了设计并实现基于 SSM 框架的房屋销售管理系统的课题。该系统旨在整合先进的信息管理理念,利用先进技术手段优化房屋销售流程,提高管理效率,满足市场需求,推动房屋销售行业的进步与发展。
1.2 国内外发展现状
房屋销售管理系统在国内外的发展现状呈现出不同的特点。在国外,尤其是西方发达国家,房屋销售管理系统已经相当成熟,得益于先进的 Web 应用技术和跨地区、跨领域的扁平化管理模式,这些系统不仅提供了高效的楼盘信息录入、修改、查询和删除功能,还实现了客户管理、销售数据统计和分析等多元化服务。这些系统的运作模式已经日趋完善,为房产行业带来了显著的经济和社会效益。
相比之下,国内的房屋销售管理系统虽然随着房产行业的快速发展而有所进步,但仍存在不少挑战。虽然国内的中介网站数量众多,但大多数系统的信息化管理还不够成熟和完善,无法在提高效率、降低成本、共享资源等方面发挥至关重要的作用。传统的房屋销售管理方式仍然占据主导地位,信息孤岛现象普遍,难以为公众提供及时、互动的信息,这在一定程度上阻碍了房产交易市场的健康、快速发展。
因此,未来国内的房屋销售管理系统需要朝着更加信息化、智能化的方向发展,通过整合和优化各类资源,实现信息共享和高效管理,以提高整个房产行业的竞争力和市场适应性。同时,随着技术的不断进步和应用场景的扩大,房屋销售管理系统也将不断创新和完善,为公众提供更加便捷、智能的房屋交易服务。
1.3 Java Web 技术及其发展前景
Java Web 技术是一种基于 Java 语言的 Web 应用程序开发技术,它将 Java 编程语言的强大功能与 Web 开发的灵活性相结合,为开发人员提供了高效、安全和可靠的方式来构建和部署 Web 应用程序。它使用 JavaServer Pages(JSP)或 JavaServer Faces(JSF)等技术来创建动态、交互式的 Web 页面,并支持与其他服务器端技术(如 Servlet、Spring 等)的集成,从而扩展了其功能和灵活性。
关于 Java Web 技术的发展前景,随着互联网的普及和数字化时代的来临,Web 前端开发作为软件开发领域的重要组成部分,其市场需求持续增长。Java Web 技术作为其中的重要一环,也将受益于这一趋势。此外,Java 以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,因此 Java Web 技术在企业级应用开发和网站建设等领域也将持续发挥重要作用。
总的来说,Java Web 技术凭借其强大的功能、灵活性和跨平台性,以及不断增长的市场需求,将继续在未来发挥重要作用,为开发人员和企业带来更高效、安全和可靠的 Web 应用程序解决方案。
1.4 系统设计概述
系统设计主要围绕 SSM 框架展开,该框架由 Spring、SpringMVC 和 MyBatis 三个开源项目整合而成,旨在实现高效、灵活、可扩展的 Web 应用程序开发。SSM 框架各个组件之间相互配合,提供了一套完整的解决方案,用于开发企业级的 Java Web 应用程序。其中,Spring 负责提供 IoC(控制反转)和 AOP(面向切面编程)等功能,简化了企业级应用的开发流程;SpringMVC 是基于 MVC 设计模式的 Web 框架,负责处理请求和响应;MyBatis 则是持久层框架,用于数据库操作。
在系统设计中,我们充分考虑了房地产数据的安全性和隐私性,采用了多层次的安全措施,如加密传输数据、定义合适的表结构和索引等,以确保数据的安全性。同时,为了提高用户体验,我们采用了 Ajax 技术实现前后端数据的异步交互,使界面更加流畅。
在功能模块设计上,我们实现了房屋基础数据的管理、员工管理、客户管理、房屋管理、房屋收藏管理、订单管理、新闻管理、单页数据管理、基础数据管理等功能,满足了房屋销售管理的全面需求。界面设计上,我们追求简洁大方,易于操作,同时提供定制化的主题和样式,让用户可以根据自己的喜好进行设置。
总体来说,SSM 基于 Web 的房屋销售管理系统的设计和实现,充分考虑了用户需求、数据安全和系统性能等方面,力求为用户提供高效、稳定、安全的房屋销售管理解决方案。
1.5 本章小结 本章主要对该系统的选题背景、选题意义,分析本人为什么要做这个系统,和这个系统给人们带来什么好处,有什么作用,以及论文的组成部分,还总述了整个系统的组成及实现的功能。
第 2 章 系统开发技术的介绍
2.1 系统开发技术 这部分内容主要介绍本系统使用的技术,包括使用的工具,编程的语言等内容。
2.2 开发环境介绍
软件体系结构方案:本系统采用 B/S(Browser/Server)模式进行架构设计。在这种模式下,服务器端由 Web 服务器提供服务,而客户端则通过浏览器进行访问和操作。前端界面使用 HTML 语言编写,由浏览器负责解释和展示。服务器端则使用能够解释脚本语言的 Web 服务器,如 JSP、PHP、ASP 和 JavaScript 等,以实现与数据库的交互和动态内容的生成。
操作系统方案:考虑到系统的稳定性和兼容性,我们选择使用 Windows 7 旗舰版操作系统。该系统不仅具备出色的运行速度,还提供了友好的用户界面,可以确保房屋销售管理系统的高效运行。
后台数据库:为了确保数据的安全性和高效性,我们选用 MySQL 作为后台数据库。MySQL 以其强大的数据库加密功能、更安全的默认设置、加强的密码政策、细化许可控制以及先进的安全模型等特性,为房屋销售管理系统提供了最高级别的数据安全性。
开发工具:在开发过程中,我们选择使用 MyEclipse 10 作为主要的开发工具。MyEclipse 10 提供了丰富的功能和强大的性能,可以帮助开发团队更加高效地进行代码编写、调试和部署。
开发语言:考虑到系统的可扩展性和可维护性,我们选择使用 Java 语言进行开发。Java 语言以其跨平台性、面向对象特性和丰富的类库,为房屋销售管理系统提供了稳定可靠的技术支持。
开发技术:在开发过程中,我们将采用 SSM(Spring、SpringMVC、MyBatis)框架作为核心技术。SSM 框架具有轻量级、易于学习和使用的特点,能够提高开发效率并保证系统的稳定性。同时,结合 HTML、CSS 和 JavaScript 等前端技术,实现用户界面的美观和交互性。
2.3 Java 语言 Java 语言自公元 1995 年至今,已经超过 25 年了,依然在软件开发上面有很大的市场占有率。当年 Sun 公司发明 Java 就是为了发展一门跨平台的高级编程语言,让程序开发人员专注于程序开发过程,不需要关注服务器是属于哪个平台,因为跨平台的特性让语言发展的很迅速。Java 的发展,吸收了 C++ 这些语言的优点,因为新生事物一般就是解决老旧事物一些痛点的,虽然 Java 也有很多缺点,但是起码也算是一种发展方向。学习 Java 不需要太多的指针这些理念,也不用学习太过复杂的数据结构理论,比如什么堆栈这些概念,除非某些特殊行业对这些要求相当严谨之外,一般用 Java 开发程序是不用考虑各种各样的数据结构的。因为 Java 属于一种强类型语言,已经对各种数据定义了各种相应的类型。Java 对数据类型定义分为两大种,一种是基本类型,含有 8 个基本属性,另一个是包装类。基本类和包装类从根本的定义上,都有很明显的区分,计算机运行也会有很明显的差别,如果用错了会编译错误还会影响运行效果的,Java 的各种优点只需要按部就班的学习使用即可。
2.4 SSM 框架 本课题开发的应用程序主要采用的框架技术是 SSM,是 Java 语言的一种框架集合的简称,目前在 Java 语言方面,主要有两大分支,一个是主攻 Java 语言,学习了 Java 基础之后,会有很多 Java 进阶框架进行学习,主要是针对应用程序后台进行开发设计,另一方面是转行去学习安卓语言,主要是做安卓的前端设计方面,虽然也是 Java 语言,但是主要去学习安卓平台的各种架构和框架了。但是不管前端应用如何,SSM 框架主要是针对服务端方面进行开发的一个主流框架集合。针对于传统的 SSH 框架的臃肿,配置繁琐,不管是开发还是二次开发都会造成时间上大量的浪费,并且学习上面也不能有效衔接,需要去适应框架的各种设计,而框架设计比较死板,容易出错。SSM 框架是当前最流行的,告别了繁琐的配置,让配置更加灵活,让数据操作更加方便,选择 SSM 框架进行开发感觉是很合适的。
2.5 MySQL 数据库 Mysql 的语言是非结构化的,用户可以在数据上进行工作。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL 是管理内容最好的选择。并且因为 Mysql 的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql 数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql 数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql 数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了 Mysql 进行对数据的管理。
第 3 章 系统分析
3.1 可行性分析 开发任何一个系统,都要对其可行性进行分析,对其时间和资源上的限制进行考虑,这样可以减少系统开发的风险。同时,分析之后不仅能够合理的运用人力,还能在各方面资源的消耗上得到节省。下面就对技术、经济和社会三个方面来介绍。
3.1.1 技术可行性 技术可行性主要考虑当前项目所用的技术是否能够符合,在设备上是否能够满足,及各种辅助工具是否提供帮助。本系统用的是 Java 开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。采用 Java 编程语言,已无技术上的问题。
3.1.2 经济可行性 该系统利用 MyEclipse 这一强大的开发平台和 MySQL 这一稳定可靠的后端数据库进行构建,这两者均为免费开发工具,因此显著降低了开发成本。主要的开销将集中在后续的推广和系统维护上。与传统的 C/S 模式相比,该系统选择了成本更低的 B/S 模式,从而在经济上几乎没有任何负担。此外,该系统还采用了 SSM(Spring、SpringMVC、MyBatis)框架进行开发,这一框架提供了高效、灵活且易于维护的解决方案,进一步确保了系统的稳定性和可扩展性。
3.1.3 社会可行性 本系统是自行开发的系统,以方便高效管理社团为出发点,是具有实际意义的系统,开发的环境软件和用到的数据库也都是开源代码,不存在侵权等问题,所以在社会方面也是可行的。
房屋销售管理系统我划分为了普通用户管理模块、销售用户管理模块和管理员模块这三大部分。
用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现房屋信息的收藏评论等,就必须有这个系统的账号,如果没有账号的话,可以注册成用户进行相关的操作,同时用户还可以对个人信息以及操作的信息进行管控。
普通用户:账户与个人中心:普通用户可以轻松管理自己的账户信息,包括查看个人资料、修改密码等。同时,个人中心提供了用户与系统的交互记录,如预约看房、收藏房源等。
预约信息:用户可以查看自己的预约看房列表,包括已预约、待审核和已完成的记录。他们还可以根据房屋类型搜索房源,并随时重置搜索条件。待审核的预约信息可以查看详情,并等待管理员的回复。
收藏管理:对于心仪的房源,用户可以轻松收藏,并在个人中心随时查看。不再需要的收藏内容,也可以随时删除。
首页浏览:用户可以浏览首页的轮播图,了解最新的楼盘动态和优惠信息。同时,首页还展示了新闻资讯和公告信息,方便用户了解行业动态和系统更新。
公告信息:系统会发布各种公告,如优惠活动、系统维护等。用户可以随时查看这些公告,以便及时获取相关信息。
新闻资讯:用户可以浏览系统发布的新闻资讯,了解房地产市场的最新动态。他们可以通过关键词搜索感兴趣的资讯,并对喜欢的资讯进行点赞、收藏或评论。
房屋信息查询:用户可以查看详细的房屋信息,包括位置、面积、楼层、价格等。通过关键字、房屋类型或状态,用户可以快速筛选并搜索到心仪的房源。同时,他们还可以对喜欢的房屋进行点赞、收藏、预约看房,并发表评论或等待回复。
房屋信息管理:销售用户在后台可以对房屋信息进行全面的管理。他们可以轻松地添加新房源、编辑或删除已有房源信息,确保数据始终准确且最新。用户还可以查看每套房源的详细信息,包括位置、面积、价格等关键要素。此外,销售用户还可以查看用户对房源的评论,了解市场的反馈和潜在客户的需求。通过内置的搜索功能,销售用户可以迅速筛选出符合特定条件的房源,如房屋类型、位置或状态,从而更加高效地为客户推荐合适的房源。
预约信息管理:在预约信息方面,销售用户能够查询和管理所有的预约看房记录。他们可以查看每条预约的详细情况,包括预约的客户信息、看房时间和地点等。如果需要,销售用户还可以重置预约信息或对其进行修改。为了提升服务效率,系统还提供了通过房屋类型或位置进行搜索的功能,帮助销售用户快速定位到特定的预约记录。最重要的是,销售用户可以对用户的预约看房信息进行审核,并在必要时给予回复,确保客户得到及时且专业的服务。
退出:在完成所有管理工作后,销售用户可以选择退出系统,确保账户安全并结束当前的工作会话。这一功能有助于保护用户的隐私和数据安全,同时也有助于释放系统资源。
管理员模块:
在房屋销售管理系统中,管理员拥有全面的后台管理权限。具体来说,管理员可以:
公共管理:管理轮播图,包括增加、删除、修改和查看轮播图的详细信息。同时,管理员还能够发布、编辑、删除和查看公告信息,确保用户能够及时获取到最新的通知和消息。
用户管理:对系统中的用户进行全面管理,包括管理员、普通用户和销售人员的增删改查以及查看详情。管理员可以根据需要添加、修改或删除用户信息,确保用户数据的准确性和完整性。
资讯管理:管理新闻列表,包括新闻的发布、编辑、删除和查看详情。管理员还可以处理用户评论,确保信息交流的顺畅和合规。此外,管理员可以通过标题、标签或分类进行新闻搜索,提高信息管理效率。
权限管理:对系统中的权限进行精细管理,包括权限列表的查看、详情的修改以及权限的查询、重置、添加、修改和删除。管理员可以通过权限名、用户组或其他相关条件进行权限搜索,确保权限设置的合理性和安全性。
房屋信息管理:对房屋信息进行全面的增删改查和查看详情操作。管理员还可以处理用户评论,并通过房屋类型、位置或状态进行信息搜索,以便快速定位和管理特定房屋。
预约信息管理:管理预约信息,包括预约的增删改查和查看详情。管理员可以通过房屋类型或位置进行搜索,以便及时了解和处理用户的预约需求。
3.2 系统功能需求
3.3 系统性能需求 评判一个系统好坏的一项重要指标就是性能,下面是对此系统的一些性能进行阐述。
系统的安全性和稳定性:房屋销售管理系统在管理权限上有着严格的控制,即想登录此平台进行操作,则必须要有操作权限,没有权限的用户是不可能登录平台查看任何的信息和数据,从而确保了系统的安全性。
数据的完整性和准确性:第一个是各项记录信息的完整性,信息记录的内容可以为空;第二个是各项信息数据之间相互联系的准确性;第三个是数据在不同记录信息的一致性。
用户操作系统简单方便。
在系统开发中按照'简单易用'的原则,能够使用户对系统的使用一目了然,既能保证用户使用,同时又能保证维护人员方便维护。
3.4 数据流程分析 对系统的数据流进行分析,系统的使用者分为两类,普通用户、销售用户和管理员。系统主要对界面信息传送,登录信息的验证,注册信息的接收,用户各种操作的响应做处理。
3.4.1 数据流程 开发房屋销售管理系统最主要的一个目的就是实现用户对房屋的销售,图 3-3 就是系统的数据流图。
3.4.2 业务流程 分析完房屋销售管理系统的数据流,那么接下来我们来看系统的业务流程,图 3-4 就是业务流程图:
第 4 章 系统设计
4.1 系统体系结构 本系统选择 B/S 结构 (Browser/Server,浏览器/服务器结构) 和基于 Web 服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图 4-1 所示:
4.2 系统结构设计 整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。
4.3 开发流程设计 系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
房屋销售管理系统的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图 4-4 所示。
4.4 数据库设计原则 学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还提供了添加、删除、修改和检查,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。
通过房屋销售管理系统的功能进行规划分成几个实体信息,实体信息将通过 ER 图进行说明,本系统的主要实体图如下:
4.5 数据表 将数据库概念设计的 E-R 图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 token_id int 10 0 N Y 临时访问牌 ID 2 token varchar 64 0 Y N 临时访问牌 3 info text 65535 0 Y N 4 maxage int 10 0 N N 2 最大寿命:默认 2 小时 5 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 6 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间: 7 user_id int 10 0 N N 0 用户编号:
表 appointment_information (预约信息)
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 appointment_information_id int 10 0 N Y 预约信息 ID 2 title_name varchar 64 0 Y N 标题名称 3 house_type varchar 64 0 Y N 房屋类型 4 location_of_the_house varchar 64 0 Y N 房屋位置 5 house_floors varchar 64 0 Y N 房屋楼层 6 publishing_personnel int 10 0 Y N 0 发布人员 7 regular_users int 10 0 Y N 0 普通用户 8 user_name varchar 64 0 Y N 用户姓名 9 contact_information varchar 64 0 Y N 联系方式 10 appointment_time datetime 19 0 Y N 预约时间 11 appointment_remarks text 65535 0 Y N 预约备注 12 examine_state varchar 16 0 N N 未审核 审核状态 13 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 14 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间
表 article (文章:用于内容管理系统的文章)
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 article_id mediumint 8 0 N Y 文章 id:[0,8388607] 2 title varchar 125 0 N Y 标题:[0,125] 用于文章和 html 的 title 标签中 3 type varchar 64 0 N N 0 文章分类:[0,1000] 用来搜索指定类型的文章 4 hits int 10 0 N N 0 点击数:[0,1000000000] 访问这篇文章的人次 5 praise_len int 10 0 N N 0 点赞数 6 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 7 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间: 8 source varchar 255 0 Y N 来源:[0,255] 文章的出处 9 url varchar 255 0 Y N 来源地址:[0,255] 用于跳转到发布该文章的网站 10 tag varchar 255 0 Y N 标签:[0,255] 用于标注文章所属相关内容,多个标签用空格隔开 11 content longtext 2147483647 0 Y N 正文:文章的主体内容 12 img varchar 255 0 Y N 封面图 13 description text 65535 0 Y N 文章描述
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 type_id smallint 5 0 N Y 分类 ID:[0,10000] 2 display smallint 5 0 N N 100 显示顺序:[0,1000] 决定分类显示的先后顺序 3 name varchar 16 0 N N 分类名称:[2,16] 4 father_id smallint 5 0 N N 0 上级分类 ID:[0,32767] 5 description varchar 255 0 Y N 描述:[0,255] 描述该分类的作用 6 icon text 65535 0 Y N 分类图标: 7 url varchar 255 0 Y N 外链地址:[0,255] 如果该分类是跳转到其他网站的情况下,就在该 URL 上设置 8 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 9 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 auth_id int 10 0 N Y 授权 ID: 2 user_group varchar 64 0 Y N 用户组: 3 mod_name varchar 64 0 Y N 模块名: 4 table_name varchar 64 0 Y N 表名: 5 page_title varchar 255 0 Y N 页面标题: 6 path varchar 255 0 Y N 路由路径: 7 position varchar 32 0 Y N 位置: 8 mode varchar 32 0 N N _blank 跳转方式: 9 add tinyint 3 0 N N 1 是否可增加: 10 del tinyint 3 0 N N 1 是否可删除: 11 set tinyint 3 0 N N 1 是否可修改: 12 get tinyint 3 0 N N 1 是否可查看: 13 field_add text 65535 0 Y N 添加字段: 14 field_set text 65535 0 Y N 修改字段: 15 field_get text 65535 0 Y N 查询字段: 16 table_nav_name varchar 500 0 Y N 跨表导航名称: 17 table_nav varchar 500 0 Y N 跨表导航: 18 option text 65535 0 Y N 配置: 19 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 20 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 collect_id int 10 0 N Y 收藏 ID: 2 user_id int 10 0 N N 0 收藏人 ID: 3 source_table varchar 255 0 Y N 来源表: 4 source_field varchar 255 0 Y N 来源字段: 5 source_id int 10 0 N N 0 来源 ID: 6 title varchar 255 0 Y N 标题: 7 img 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 更新时间:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 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:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 hits_id int 10 0 N Y 点赞 ID: 2 user_id int 10 0 N N 0 点赞人: 3 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 4 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间: 5 source_table varchar 255 0 Y N 来源表: 6 source_field varchar 255 0 Y N 来源字段: 7 source_id int 10 0 N N 0 来源 ID:
表 housing_information (房屋信息)
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 housing_information_id int 10 0 N Y 房屋信息 ID 2 title_name varchar 64 0 Y N 标题名称 3 house_type varchar 64 0 Y N 房屋类型 4 location_of_the_house varchar 64 0 Y N 房屋位置 5 housing_area varchar 64 0 Y N 房屋面积 6 house_floors varchar 64 0 Y N 房屋楼层 7 house_pictures varchar 255 0 Y N 房屋图片 8 housing_status varchar 64 0 Y N 房屋状态 9 price_amount int 10 0 Y N 0 价格金额 10 publishing_personnel int 10 0 Y N 0 发布人员 11 introduction_to_the_house longtext 2147483647 0 Y N 房屋简介 12 hits int 10 0 N N 0 点击数 13 praise_len int 10 0 N N 0 点赞数 14 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 15 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 notice_id mediumint 8 0 N Y 公告 id: 2 title varchar 125 0 N N 标题: 3 content longtext 2147483647 0 Y N 正文: 4 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 5 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 praise_id int 10 0 N Y 点赞 ID: 2 user_id int 10 0 N N 0 点赞人: 3 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 4 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间: 5 source_table varchar 255 0 Y N 来源表: 6 source_field varchar 255 0 Y N 来源字段: 7 source_id int 10 0 N N 0 来源 ID: 8 status bit 1 0 N N 1 点赞状态:1 为点赞,0 已取消
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 regular_users_id int 10 0 N Y 普通用户 ID 2 user_name varchar 64 0 Y N 用户姓名 3 user_age varchar 64 0 Y N 用户年龄 4 user_gender varchar 64 0 Y N 用户性别 5 contact_information varchar 64 0 Y N 联系方式 6 examine_state varchar 16 0 N N 已通过 审核状态 7 user_id int 10 0 N N 0 用户 ID 8 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 9 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 sales_personnel_id int 10 0 N Y 销售人员 ID 2 personnel_name varchar 64 0 Y N 人员姓名 3 age_of_personnel varchar 64 0 Y N 人员年龄 4 gender_of_personnel varchar 64 0 Y N 人员性别 5 contact_phone_number varchar 64 0 Y N 联系电话 6 examine_state varchar 16 0 N N 已通过 审核状态 7 user_id int 10 0 N N 0 用户 ID 8 create_time datetime 19 0 N N CURRENT_TIMESTAMP 创建时间 9 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 slides_id int 10 0 N Y 轮播图 ID: 2 title varchar 64 0 Y N 标题: 3 content varchar 255 0 Y N 内容: 4 url varchar 255 0 Y N 链接: 5 img varchar 255 0 Y N 轮播图: 6 hits int 10 0 N N 0 点击量: 7 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 8 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间:
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 upload_id int 10 0 N Y 上传 ID 2 name varchar 64 0 Y N 文件名 3 path varchar 255 0 Y N 访问路径 4 file varchar 255 0 Y N 文件路径 5 display varchar 255 0 Y N 显示顺序 6 father_id int 10 0 Y N 0 父级 ID 7 dir varchar 255 0 Y N 文件夹 8 type varchar 32 0 Y N 文件类型
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 user_id mediumint 8 0 N Y 用户 ID:[0,8388607] 用户获取其他与用户相关的数据 2 state smallint 5 0 N N 1 账户状态:[0,10](1 可用 3 user_group varchar 32 0 Y N 所在用户组:[0,32767] 决定用户身份和权限 4 login_time timestamp 19 0 N N CURRENT_TIMESTAMP 上次登录时间: 5 phone varchar 11 0 Y N 手机号码:[0,11] 用户的手机号码,用于找回密码时或登录时 6 phone_state smallint 5 0 N N 0 手机认证:[0,1](0 未认证 7 username varchar 16 0 N N 用户名:[0,16] 用户登录时所用的账户名称 8 nickname varchar 16 0 Y N 昵称:[0,16] 9 password varchar 64 0 N N 密码:[0,32] 用户登录所需的密码,由 6-16 位数字或英文组成 10 email varchar 64 0 Y N 邮箱:[0,64] 用户的邮箱,用于找回密码时或登录时 11 email_state smallint 5 0 N N 0 邮箱认证:[0,1](0 未认证 12 avatar varchar 255 0 Y N 头像地址:[0,255] 13 open_id varchar 255 0 Y N 针对获取用户信息字段 14 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 15 vip_level varchar 255 0 Y N 会员等级 16 vip_discount double 11 2 Y N 0.00 会员折扣
表 user_group (用户组:用于用户前端身份和鉴权)
编号 名称 数据类型 长度 小数位 允许空值 主键 默认值 说明 1 group_id mediumint 8 0 N Y 用户组 ID:[0,8388607] 2 display smallint 5 0 N N 100 显示顺序:[0,1000] 3 name varchar 16 0 N N 名称:[0,16] 4 description varchar 255 0 Y N 描述:[0,255] 描述该用户组的特点或权限范围 5 source_table varchar 255 0 Y N 来源表: 6 source_field varchar 255 0 Y N 来源字段: 7 source_id int 10 0 N N 0 来源 ID: 8 register smallint 5 0 Y N 0 注册位置: 9 create_time timestamp 19 0 N N CURRENT_TIMESTAMP 创建时间: 10 update_time timestamp 19 0 N N CURRENT_TIMESTAMP 更新时间:
第 5 章 系统的实现
5.1 前台首页的实现 本系统设计的是一个房屋销售管理系统。该系统总共分为首页、公告信息、新闻资讯、房屋信息等多个模块。通过对此系统的开发,达到了用户对了解。实现系统的实用性和易管理性。
前台首页集成了普通用户的注册页面,注册的独立页面为 userreg.jsp。通过 SSM 框架嵌入系统前台首页。用户填写好注册信息后,通过 <form action="userreg.jsp?f=f" method="post" name="f1" onsubmit="return checkform();"> 方式提交表单,会通过 JavaScript 验证格式。如果格式有错误,则用户小窗口提示错误的地方;如果格式都正确,则跳转至 DAO 的注册方法,实现注册用户,并提示注册成功,并将注册的信息加入用户表中。
package com.project.demo.constant;
public class FindConfig {
public static String PAGE = "page" ;
public static String SIZE = "size" ;
public static String LIKE = "like" ;
public static String ORDER_BY = "orderby" ;
public static String FIELD = "field" ;
public static String GROUP_BY = "groupby" ;
public static String MIN_ = "_min" ;
public static String MAX_ = "_max" ;
}
@PostMapping("register")
public Map<String, Object> signUp (HttpServletRequest request) throws IOException {
Map<String, String> query = new HashMap <>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username" ,String.valueOf(map.get("username" )));
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 );
}
public Map<String,Object> readBody (BufferedReader reader) {
BufferedReader br = null ;
StringBuilder sb = new StringBuilder ("" );
try {
br = reader;
String str;
while ((str = br.readLine()) != null ){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally {
if (null != br){
try {
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null ;
}
public void insert (Map<String,Object> body) {
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}" ,entity);
}
5.2 登录模块的实现 系统的登录是使用该系统的第一关卡,用户在登录界面输入账号和密码后,系统判断该账号密码是否能在数据库中存在并且匹配,返回登录成功或登录失败的信息,登录成功后才能使用系统的功能。
随着系统规模的壮大,系统发布更新的信息及对普通用户量会越来越多,只有超级管理员负责系统后台恐怕任务艰巨,本系统考虑到这一问题后开发了超级管理员有权限可以增加管理员的模块。管理员角色不同对应权限亦不相同。
@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 ;
QueryWrapper wrapper = new QueryWrapper <User>();
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)) {
AccessToken accessToken = new AccessToken ();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-" , "" ));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
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 , "账号或密码不正确" );
}
}
public String select (Map<String,String> query,Map<String,String> config) {
StringBuffer sql = new StringBuffer ("select " );
sql.append(config.get(FindConfig.FIELD) == null || "" .equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" " );
sql.append("from " ).append("\`" ).append(table).append("\`" ).append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"" .equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by " ).append(config.get(FindConfig.GROUP_BY)).append(" " );
}
if (config.get(FindConfig.ORDER_BY) != null && !"" .equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by " ).append(config.get(FindConfig.ORDER_BY)).append(" " );
}
if (config.get(FindConfig.PAGE) != null && !"" .equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"" .equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1 ;
int limit = config.get(FindConfig.SIZE) != null && !"" .equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10 ;
sql.append(" limit " ).append( (page-1 )*limit ).append(" , " ).append(limit);
}
log.info("[{}] - 查询操作,sql: {}" ,table,sql);
return sql.toString();
}
public List selectBaseList (String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList <>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
5.3 新闻资讯模块的实现 用户可以浏览系统发布的新闻资讯,了解房地产市场的最新动态。他们可以通过关键词搜索感兴趣的资讯,并对喜欢的资讯进行点赞、收藏或评论。
public List selectBaseList (String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList <>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
5.4 房屋信息模块的实现 用户可以查看详细的房屋信息,包括位置、面积、楼层、价格等。通过关键字、房屋类型或状态,用户可以快速筛选并搜索到心仪的房源。同时,他们还可以对喜欢的房屋进行点赞、收藏、预约看房,并发表评论或等待回复。
5.5 个人中心 - 预约信息模块的实现 用户可以查看自己的预约看房列表,包括已预约、待审核和已完成的记录。他们还可以根据房屋类型搜索房源,并随时重置搜索条件。待审核的预约信息可以查看详情,并等待管理员的回复。
5.6 销售人员 - 房屋信息模块的实现 销售用户在后台可以对房屋信息进行全面的管理。他们可以轻松地添加新房源、编辑或删除已有房源信息,确保数据始终准确且最新。用户还可以查看每套房源的详细信息,包括位置、面积、价格等关键要素。此外,销售用户还可以查看用户对房源的评论,了解市场的反馈和潜在客户的需求。通过内置的搜索功能,销售用户可以迅速筛选出符合特定条件的房源,如房屋类型、位置或状态,从而更加高效地为客户推荐合适的房源。
5.7 管理员 - 公共管理模块的实现 管理轮播图,包括增加、删除、修改和查看轮播图的详细信息。同时,管理员还能够发布、编辑、删除和查看公告信息,确保用户能够及时获取到最新的通知和消息。
5.8 管理员 - 资讯管理模块的实现 管理新闻列表,包括新闻的发布、编辑、删除和查看详情。管理员还可以处理用户评论,确保信息交流的顺畅和合规。此外,管理员可以通过标题、标签或分类进行新闻搜索,提高信息管理效率,资讯管理如下图所示。
5.9 管理员 - 房屋信息管理模块的实现 对房屋信息进行全面的增删改查和查看详情操作。管理员还可以处理用户评论,并通过房屋类型、位置或状态进行信息搜索,以便快速定位和管理特定房屋,房屋信息如下图所示。
第 6 章 系统测试
6.1 系统测试的目的 程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
房屋销售管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在房屋销售管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2 系统测试方法 在对房屋销售管理系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让房屋销售管理系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个房屋销售管理系统开发所牵扯的该问题都必须一一解决,提高房屋销售管理系统平台的安全性、稳定性。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
6.3 功能测试 模块名称 测试用例 预期结果 实际结果 是否通过 登录模块 用户名:admin 密码:123 弹出错误提示,提示密码错误 弹出错误提示,提示密码错误 通过 登录模块 用户名:123 密码:admin 弹出错误提示,提示用户名错误 弹出错误提示,提示用户名错误 登录模块 用户名:admin 密码:admin 管理员登录成功 管理员登录成功
模块名称 测试用例 预期结果 实际结果 是否通过 修改密码模块 原密码:666 新密码:123 确认密码:123 弹出错误提示,提示原密码错误 弹出错误提示,提示原密码错误 通过 修改密码模块 原密码:admin 新密码:123 确认密码:333 弹出错误提示,提示确认密码不一致 弹出错误提示,提示确认密码不一致 通过 修改密码模块 原密码:admin 新密码:123 确认密码:123 密码修改成功 密码修改成功 通过
通过对功能的测试,房屋销售管理系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
第 7 章 总结 此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所相关技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是一个掌握了常用的性能和控制方法,我觉得挺容易的。从该系统中,系统的分析和设计的调查数据,并且已经经历了几个月,并努力几个月,该系统已经完成。很显然,该系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过咨询老师解决这些问题,对于毕业设计的圆满完成,需要感谢老师们的指导。系统的开发环境和配置都是可以自行安装的,系统使用 Java 开发工具,使用比较成熟的 Mysql 数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
回顾毕业设计的整个过程,既付出汗水也收获了很多。虽然经历了各种各样的困难,自己的不断研究探索,系统的实现仍有不足之处。
在以后的学习及工作中,我仍然继续学习计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信我可以让更多的好工作,做出更大的贡献。
参考文献 [1] Hasabeldaim E ,Swart H ,Kroon R . Web-based application software for Judd-Ofelt analysis of Eu3+ ion luminescence [J]. Results in Optics, 2024, 16 100688-.
[2] Han Y X ,Zhao M S ,Wang X , et al. B 0 — B¯0 mixing in the U(1) X SSM [J]. Journal of Physics G: Nuclear and Particle Physics, 2024, 51 (5):
[3] 张小红。基于 WEB 的在线自主学习平台设计与实现 [J]. 农机使用与维修,2024, (04): 36-38.
[4] 江国粹。基于高阶思维能力培养的'MySQL 数据库技术'课程教学改革研究 [J]. 安徽电子信息职业技术学院学报,2024, 23 (01): 39-43.
[5] 胡瑚。基于 MySQL 的科研信息管理系统数据库设计 [J]. 信息与电脑 (理论版), 2024, 36 (04): 169-171.
[6] Ghoshal A . Oracle's MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,
[7] 孙士兵。基于 SSM 和虚拟现实的房屋装饰商务平台的设计[C]// 上海筱虞文化传播有限公司。Proceedings of 2022 Engineering Technology Innovation and Management Seminar(ETIMS 2022). 长沙民政职业技术学院软件学院;, 2022: 3.
[8] 闫银娟。基于 SSM 的房屋租赁系统的设计与实现 [J]. 电脑知识与技术,2022, 18 (33): 38-41.
[9] 翟炜,岳皓宇,白雪音。基于谷歌街景影像的飓风后重建策略对房屋恢复的影响研究——以 2018 年美国佛州迈克尔飓风为例 [J]. 西部人居环境学刊,2022, 37 (01): 9-14.
[10] 吴桐。房屋销售居间行为法律问题研究[D]. 贵州民族大学,2021.
[11] 闫振斌。电商环境下视觉元素对销售的影响研究[D]. 中国科学技术大学,2021.
[12] 焦翔音。房地产开发企业销售业务税收策划研究[D]. 东北财经大学,2021.
[13] 杨贤勇。商品房销售广告引发的房屋买卖合同纠纷类案评析[D]. 湖南大学,2021.
[14] 师艺玮。基于 SSH 框架的房地产销售管理系统的设计与实现[D]. 电子科技大学,2021.
[15] 黄泽欢,房屋销售分销管理理系统。湖北省,湖北得一科技有限有限公司,2021-01-05.
[16] 张廷廷,李颖。欺诈销售和房屋质量差是投诉热点《中国质量万里行》发布 2019 年度房地产业投诉分析报告 [J]. 中国质量万里行,2020, (Z1): 36-39.
[17] 纪宏奎,赵辉,张国永。继承房屋再销售如何纳税 [J]. 税收征纳,2020, (Z1): 32-33.
[18] 汤倩雯。房屋团购的法律适用问题研究 [J]. 呼伦贝尔学院学报,2019, 27 (05): 43-47.
[19] 邓斯敏。基于合同视角的房屋销售代理风险分析及防范 [J]. 中外企业家,2019, (10): 42.
[20] 李先耀。基于 SpringMVC 房屋销售管理系统的设计与实现[D]. 电子科技大学,2019.
相关免费在线工具 Keycode 信息 查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
Escape 与 Native 编解码 JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
JavaScript / HTML 格式化 使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
JavaScript 压缩与混淆 Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online