Spring Boot房屋租赁系统:技术架构解析

news2024/11/20 2:35:16

2 关键技术简介
2.1 JAVA技术
Java是一种多用途并且强大的编程语言,可用于开发运行在移动设备、台式计算机以及服务器端的软件。Java已及其流行。Java只要编写一次,无论什么地方都可以运行启动[1]。
Java语言是应用很广泛的语言,用它编写出的程序十分可靠安全,并且可以在任何系统平台运行[3]。java在线程机制上也是十分简便,其多线程的机制可以在某一时间内同时执行多个任务不会出现中断,巧妙使用这一特性可以让程序具有更好的实时行为和交互性。
Java可以是高级语言,在c++语言的基础上,取其精华去其糟粕,使其更加强大与实用。Java编程语言提供自动的垃圾回收机制,使程序员可以不用担心内存管理。
2.2 B/S结构
B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在客户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。
在这里插入图片描述

图2-1 B/S模式三层结构图
2.3 SQL数据库
Mysql现隶属于Oracle公司,之前隶属于SUN公司,却是MySQL AB公司研发出来的数据库[4]。
MySQL数据库是一种开源的关系行数据库操作系统其使用的SQL语言是用来访问数据库较为标准的常用数据库操作语言。而且MySQL数据库体积较小易于安装、运行速度较快、所花费的成本较低搭载超文本预处理器接口与web服务器软件或服务可以组成良好的开发环境。
Mysql是当今最为热门的数据库之一,它是用于WEB应用程序的最佳RDBMS(关系数据库管理系统)应用程序。Mysql所使用的语言也是访问数据库最常用的语言,而且体积较小,速度较快,并且成本较低,所以本系统选择Mysql作为系统的数据库,许多中小型的网站一般都是选择Mysql作为网站的数据库。Mysql的数据库是存放在表中的,所以它的速度较快,而且也较为的灵活。MySQL操作起来十分简便,因为MySQL不是讲所有的数据堆放在一起,这样数据量大,查找起来需要的时间很多。它是将数据保存在不同的表中,这些表具有关联性,查找时直接从表中获取数据,这样大大提高了查找的速度。且MySQL是免费的,这对于大多数研发人员来说,是极大的诱惑。MySQL可以使用标准的sql数据语句,使用起来简单方便。

4 系统设计
4.1 系统概要设计
房屋租赁系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4-1就是开发出来的程序工作原理图。
在这里插入图片描述

图4-1系统工作原理图
4.2 系统结构设计
系统结构设计是将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。在整个设计过程,以确定可能的具体方案达成每一个小的最终目标,对于每一个小的目标而言,我们必须先了解一些相关的需求分析的信息。然后对系统进行初步的设计,并对其逐渐进行优化,设计出一个具体可实现的系统结构。
本基于Spring Boot的房屋租赁系统的功能结构设计如图4-2所示。
在这里插入图片描述

图4-2 系统结构图
4.3 系统顺序图设计
(1)登陆顺序图
用户在登录时,首先进入系统登录窗口,用户需要输入用户名和密码,点击登录按钮进行登录操作,系统会以用户名和密码为参数在数据库中进行登录信息的验证,验证成功则登录成功,进入用户主界面。登录模块顺序图如图4-3所示。
在这里插入图片描述

图4-3 登录顺序图
(2)注册顺序图
未有账号的用户可进入注册界面进行注册操作,在注册界面输入注册信息,点击提交按钮,系统首先判断用户名是否存在,存在则提示重新输入,不存在则验证注册信息是否正确,正确则在数据库中添加注册数据,提示注册成功。用户注册模块顺序图如图4-4所示。
在这里插入图片描述

图4-4 注册顺序图
4.4 数据库设计
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,还是需要多花时间进行考虑,最终设计出配套程序的数据库出来。
4.4.1 数据库E-R图设计
本基于Spring Boot的房屋租赁系统采用的是SQL数据库,数据存储快,因为房屋租赁系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确。
E-R图是一种描述显示数据类型间的关系的数据描述方法,E-R图可以完整地映射出现实模型的关系。E-R图中的三个最为重要的元素就是实体、属性、关系,E-R图即由这三点组成。E-R图是最能体系各个实体之间关系的,包括每个实体都包括哪些属性,搞清楚这些我们设计数据库表的时候才能够不遗忘,才能完整的设计。下面我们例出主要的几个E-R图。
(1)报修信息实体属性E-R图如图4-5所示:
在这里插入图片描述

图4-5 报修信息实体E-R图
(2)房屋信息实体属性E-R图如图4-6所示:
在这里插入图片描述

图4-6 房屋信息实体属性E-R图
(3)租客信息实体属性E-R图如图4-7所示:
在这里插入图片描述

图4-7 租客信息实体属性E-R图
(4)管理员信息实体属性E-R图如图4-8所示:
在这里插入图片描述

图4-8 管理员信息实体属性E-R图
(5)看房申请信息实体属性E-R图如图4-9所示:
在这里插入图片描述

图4-9 看房申请信息实体属性E-R图
4.4.2 数据库表设计
本房屋租赁系统需要后台数据库,下面介绍数据库中的各个表的详细信息。各个表的设计结果如下:
表4-1 baoxiuxinxi报修信息表
列名 数据类型 长度 允许空 说明
id bigint 20 否 编号
addtime timestamp 是 创建时间
fangwubianhao varchar 200 是 房屋编号
xiangxidizhi varchar 200 是 详细地址
mingcheng varchar 200 是 名称
baoxiuneirong longtext 是 报修内容
baoxiuzhuangtai varchar 200 是 报修状态
baoxiushijian date 是 报修时间
zhanghao varchar 200 是 账号
xingming varchar 200 是 姓名
shouji varchar 200 是 手机
tupian varchar 200 是 图片

表4-2 fangwuxinxi房屋信息表
列名 数据类型 长度 允许空 说明
id bigint 20 否 编号
addtime timestamp 是 创建时间
fangwubianhao varchar 200 是 房屋编号
fangyuanleixing varchar 200 是 房源类型
fangwuhuxing varchar 200 是 房屋户型
tupian varchar 200 是 图片
zhuangtai varchar 200 是 状态
mianji varchar 200 是 面积
zujia int 11 是 租价
huzhuxingming varchar 200 是 户主姓名
lianxifangshi varchar 200 是 '联系方式 fabushijian date 是 发布时间 suozaishengfen varchar 200 是 所在省份 suozaichengshi varchar 200 是 所在城市 suozaidiqu varchar 200 是 所在地区 xiangxidizhi varchar 200 是 详细地址 xiangqing longtext 是 详情 clicktime datetime 是 最近点击时间
clicknum int 11 是 点击次数

表4-3 zuke租客信息表
列名 数据类型 长度 允许空 说明
id bigint 20 否 编号
addtime timestamp 是 创建时间
zhanghao varchar 200 是 账号
mima varchar 200 是 密码
xingming varchar 200 是 姓名
zhiye varchar 200 是 职业 xingbie varchar 200 是 性别
shouji varchar 200 是 手机
youxiang varchar 200 是 邮箱
shenfenzheng varchar 200 是 身份证
zhaopian varchar 200 是 照片
`dizhi varchar 200 是 地址

表4-4 users用户信息表
列名 数据类型 长度 允许空 说明
id` bigint 20 否 编号
username varchar 100 是 用户名
password varchar 100 是 密码
role varchar 100 是 角色
addtime timestamp 是 新增时间

表4-5 kanfangshenqing看房申请信息表
列名 数据类型 长度 允许空 说明
id bigint 20 否 编号
addtime timestamp 是 创建时间
zhanghao varchar 200 是 账号
xingming varchar 200 是 姓名
shouji varchar 200 是 手机
shenfenzheng varchar 200 是 身份证
kanfangshijian date 是 看房时间 shenqingriq dater 是 申请日期
fangwubianhao varchar 200 是 房屋编号
zujia varchar 200 是 租价
mianji varchar 200 是 面积
xiangxidizhi varchar 200 是 详细地址 beizhu longtext 是 备注
sfsh varchar 200 是 是否审核
shhf` longtext 是 审核回复

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JVM原理】运行时数据区(内存结构)

JVM (Java Virtual Machine)原理 文章目录 四、运行时数据区(内存结构)4-1 线程私有区域程序计数器(program counter Register)本地方法栈(Native Method Stacks)Java 虚拟机栈&…

Python办公自动化教程(004):PDF添加水印

1.4 PDF文档水印添加 【1】安装库 pip install reportlab pip install PyPDF2【2】代码 import iofrom PyPDF2 import PdfWriter, PdfReader from reportlab.lib import pagesizes # 页面样式 from reportlab.lib.units import cm from reportlab.pdfbase import pdfmetric…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL68

同步FIFO 描述 请设计带有空满信号的同步FIFO,FIFO的深度和宽度可配置。双口RAM的参考代码和接口信号已给出,请在答案中添加并例化此部分代码。 电路的接口如下图所示。端口说明如下表。 接口电路图如下: 双口RAM端口说明: 端口…

828华为云征文|使用Flexus X实例集成ES搜索引擎

目录 一、应用场景 1.1 Flexus X实例概述 1.2 ES搜索引擎 二、安装相关服务 2.1 安装Elasticsearch7.17.0 2.2 安装kibana7.17.0 三、开通安全组规则 四、整体感受 4.1 Flexus X实例 4.2 使用感觉 一、应用场景 1.1 Flexus X实例概述 Flexus X实例是华为云推出的一款…

Windows内核编程基础(2)

上下文环境 应用层应用程序工作在用户模式,内核驱动程序工作在内核模式。这里的用户模式和内核模式是基于CPU的特权环来定义的,CPU提供了0环~3环(ring 0 ~ ring 3)共四个特权环,Windows操作系统使用了其中的0环和3环,0环为内核模…

【深度学习】(7)--保存最优模型

文章目录 保存最优模型一、两种保存方法1. 保存模型参数2. 保存完整模型 二、迭代模型 总结 保存最优模型 我们在迭代模型训练时,随着次数初始的增多,模型的准确率会逐渐的上升,但是同时也随着迭代次数越来越多,由于模型会开始学…

大数据-148 Apache Kudu 从 Flink 下沉数据到 Kudu

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

Spring Boot房屋租赁平台:现代化解决方案

1 绪论 1.1 研究背景 中国的科技的不断进步,计算机发展也慢慢的越来越成熟,人们对计算机也是越来越更加的依赖,科研、教育慢慢用于计算机进行管理。从第一台计算机的产生,到现在计算机已经发展到我们无法想象。给我们的生活改变很…

Recaptcha2 图像识别 API 对接说明

Recaptcha2 图像识别 API 对接说明 本文将介绍一种 Recaptcha2 图像识别2 API 对接说明,它可以通过用户输入识别的内容和 Recaptcha2验证码图像,最后返回需要点击的小图像的坐标,完成验证。 接下来介绍下 Recaptcha2 图像识别 API 的对接说…

8.12DoG (Difference of Gaussians)

基本概念 不同尺度的高斯模糊图像之间的差异(DoG),用于边缘检测。函数: cv::GaussianBlur() 结合 cv::Laplacian() 或者自定义DoG实现。 在OpenCV中并没有直接提供一个名为“DoG”(Difference of Gaussians)的函数&a…

【学术会议征稿】第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

第四届人工智能、机器人和通信国际会议(ICAIRC 2024) 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 第四届人工智能、机器人和通信国际会议(ICAIRC 2024)定于2024年12月27-29日…

css 自定义滚动条样式

* { scrollbar-color: auto !important; scrollbar-width: auto; } //滚动条宽高 ::-webkit-scrollbar { width: 4px; height: 4px; background: transparent; } ::-webkit-scrollbar-thumb { //滑块部分 border-radius: 5px; background-color: rgba(32, 224, 254, 1); } ::-…

【Python报错已解决】TypeError: can only concatenate str (not “float“) to str

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

docker compose的使用

docker compose 1.概述 是 Docker 官方提供的一款开源工具,主要用于简化在单个主机上定义和运行多容器 Docker 应用的过程。它的核心作用是容器编排,使得开发者能够在一个统一的环境中以声明式的方式管理多容器应用的服务及其依赖关系。 也就是说Docker…

用 Django 5 快速生成一个简单 进销存 系统 添加 个打印 按钮

一、前置条件: 1.安装好python 【关联网址】 2. 安装好vscode 【关联网址】 插件 3. 登陆海螺AI【关联网址】 4. 安装好 pip install django 【关联网址】 pip install django -i https://mirrors.aliyun.com/pypi/simple/ 二、开始生成 1. 打开vscode 打开…

[数据库实验五] 审计及触发器

一、实验目的与要求: 1.了解MySQL审计功能及实现方式 2.掌握触发器的工作原理、定义及操作方法 二、实验内容: 注: 在同一个触发器内编写多行代码,需要用结构begin ……end 函数current_user()获得当前登录用户名 1.自动保存…

Linux 应用层自定义协议与序列化

文章目录 一、应用层1、协议2、序列化 && 反序列化3、通过Json库进行数据的序列化 && 反序列化Json::Value类Json::Reader类Json::Writer类 二、为什么read、write、recv、send和Tcp支持全双工?发数据的本质:tcp支持全双工通信的原因&am…

gitlab-runner集成CI/CD完整项目部署

目录 1.环境安装 2.gitlab代码仓库搭建 3.gitlab-runner-安装以及注册 4..gitlab-ci.yml脚本 5.脚本说明 6.build.sh 7.test.sh 8. deploy.sh 9.运行流水线 10.选择流水线分支 11.查看运行阶段 12.查看运行日志 13.查看服务器真实日志 1.环境安装 确保服务器的Java环…

Python_异常机制

软件程序在运行过程中,非常可能遇到刚刚提到的这些问题,我们称之为异常,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出&…

Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长

作者:Stella L (stellafootprint.network) 在 Web3 的快节奏世界里,社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展,很大程度上得益于 Telegram 平台。正因如此,Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…