您好,欢迎来到世旅网。
搜索
您的当前位置:首页java小型房屋租赁管理系统设计与实现(含源文件)

java小型房屋租赁管理系统设计与实现(含源文件)

来源:世旅网


毕 业 设 计

题目:小型房屋租赁管理系统的设计与实现

摘 要

如何利用现代的管理手段,提高房屋租赁管理水平,是当今租赁市场所面临的一个重要课题。论文基于MyEclipse10.0和Oracle平台设计实现了一套房屋租赁管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,整个系统主要包含了修改密码管理、房屋信息管理、房屋预订管理、出租户信息管理、求租户信息管理、房屋交易管理、租金统计管理、用户信息管理等功能。

论文主要介绍了本系统的开发背景,所要完成的功能和开发的全过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。

关键词:房屋预订;B/S;房屋租赁

I

ABSTRACT

How to use modern means of management, improve the housing rental management level, is an important task in the current rental market. The MyEclipse10.0 and Oracle platform design and implementation of a housing lease management system based on, its development mainly includes two aspects: the background of the establishment and maintenance of database and front-end application development, the whole system mainly includes the modification password management, housing information management, booking management, housing rental households in the information management, information management for tenants, transaction management, rental statistics management, user information management etc..

The paper mainly introduced the development background of the system, complete the functions and development process of the. Key explanation system design key point, design thought, difficult technology and solution.

Key words: Housing reservations;B/S;Rental housing

II

目 录

摘 要 ....................................................................................................................I ABSTRACT ......................................................................................................... II 1 绪 论 ................................................................................................................. 1 1.1 课题研究现状 ········································································ 1 1.2开发背景与目的 ····································································· 1 2 系统可行性分析 ............................................................................................... 2 2.1 操作可行性分析 ····································································· 2 2.2 技术可行性分析 ····································································· 2 3 系统需求分析 ................................................................................................... 3 3.1 系统设计目标 ········································································ 3 3.2 系统应用现状调查 ·································································· 3 3.3 系统需求描述: ······································································· 3 3.4 系统接口需求分析 ·································································· 4 3.5 系统开发环境及开发工具 ························································· 4 3.6 其他需求分析 ········································································ 5 4 系统总体设计 ................................................................................................. 6 4.1 系统架构设计 ········································································ 6 4.2 系统功能模块划分和结构设计 ··················································· 6 4.3 系统主控流程 ········································································ 8 5 数据库设计 ................................................................................................... 10 5.1 数据库需求分析 ··································································· 10 5.2 数据库逻辑结构设计 ····························································· 11 6 系统详细设计 ............................................................................................... 19 6.1 数据库的连接 ······································································ 19 6.2 系统登录界面设计 ································································ 20 6.3 系统主界面的设计 ································································ 20 6.4 个人信息管理设计 ································································ 21 6.5 房屋信息管理设计 ································································ 22 6.6 客户信息管理设计 ································································ 23 6.7 交易信息管理设计 ································································ 24 6.8 系统设置管理设计 ································································ 26

III

6.9 系统实现关键技术 ································································ 26 7 系统测试 ....................................................................................................... 28 7.1 登录功能测试 ······································································ 28 7.2 密码修改功能测试 ································································ 28 7.3 其他功能模块测试 ································································ 29 结束语 ................................................................................................................. 30 参考文献 ················································································· 31 致 谢 ................................................................................................................. 32

IV

1 绪 论

1.1 课题研究现状

随着计算机技术的飞速发展,房屋租赁业务也受到了信息化时代带来的管理便利和高效的影响。

从目前的应用情况上来看,国外的许多大型房屋租赁中介公司都建立了自己的信息管理平台,例如法国大部分的房屋中介公司利用Internet平台,通过运用MLS(多重上市服务)对出租房屋和客户信息之间的对接,实现了对出租房屋和客户的双重信息的有效管理。如使用“房屋租赁管理系统”软件,取代传统的手工登记模式,帮助客户实现房屋出租,房屋租赁中介自动化管理,其很大程度上提高了工作效率,并且极大的减少了出错率。

国内的房屋中介行业起步较晚,国外的很多房屋中介又纷纷进入国内市场,例如美国“21世纪不动产”早已在中国全面启动,以其先进的房源信息共享平台取得了丰厚的业绩。然而国内的许多房屋租赁中介公司依然使用传统的手工记录方式,信息的载体和传播只要通过纸质媒介来完成,而需要在大量的数据中查询出所要的消息也仍然使用手工搜索的方式,这种方式会占用很多人力资源和管理成本,为了在房屋租赁市场上占有一席之地,保持自己的竞争力,房屋租赁中介公司建立自己的信息化管理平台至关重要。

1.2开发背景与目的

利用计算机实现物业管理中的房屋租赁管理势在必行。对于物业管理企业来说,通过利用计算机高效率的来完成房屋租赁的日常事务管理,是顺应现代的企业制度条件、促进企业的工作管理走向科技化、标准化的必需条件。由于房屋租赁中介的日常管理是一项繁杂而又格外周密的工作,出租房屋的基本信息,客户基本资料的管理,房屋交易信息管理,租金统计的管理,通常都不能够出错,如果通过手工操作,需手工填写大量表格数据,这样会消耗企业大量的人力和物力,而通过利用计算机对房屋租赁的管理,不但可以确保每项信息的正确无误和迅速输出,同时,计算机具有手工管理所无法比拟的优点,比如:迅速检索、查找简便、出错率低、存储容量大、安全性好、低成本等,这些优点可以很好的提升物业管理的工作效率,也是企业的科技化、标准化管理,和世界接轨的重要条件。

本系统的开发就是为了解决物业管理企业在房屋租赁管理当中的一些不严谨,让房屋租赁的管理走向简单和有效。

第 1 页 共 32 页

2 系统可行性分析

2.1 操作可行性分析

操作可行性主要是指用户使用的舒适性,因此界面设计时要充分考虑管理人员的习惯,使得操作简单便宜:数据录入迅速、规范、可靠;统计准确,制表灵活,适应力强,容易扩充。具有易用性、灵活性、开放性与可视性等,这些基本都可以实现。

如今的计算机早已进入千家万户,硬件成本的下降,导致购买计算机成本降低。本系统是利用自己的计算机作为软件开发平台,使开发出的系统具有友好的用户界面、良好的安全设置,这让用户能够快速掌握系统的使用。

所以在操作上是可行的.

2.2 技术可行性分析

技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。

本系统采用的是Java和Html开发语言以及Oracle数据库。前台界面运用了LigerUI,LigerUI是基于JQuery开发的一系列控件组,包括表单、布局、表格等等常用UI控件,使用LigerUI可以快速创建风格统一的界面效果。LigerUI视图简洁明了,操作较为简便,采用Json格式传递数据。具有不错的Grid表格处理能力。而后台运用了JFinal系统架构,JFinal 是基于Java 语言的极速 Web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有Ruby、Python等动态语言的开发效率。

所以技术上是可行的。

由以上操作和技术两方面的分析可以看出、本系统的开发时机成熟、从多种角度考虑,都是可行的,采用本系统,能够使整个系统内部所有的信息工作简化、提高工作效益。由于采用统一的数据信息,使相关人员能够快速的查询所需要的数据、资料及其它信息的,使信息快速高效运行。

第 2 页 共 32 页

3 系统需求分析

3.1 系统设计目标

利用企业已有的软硬件环境及科学的管理方式开发方案,建立房屋租赁管理系统,实现房屋租赁的计算机自动化管理。

本系统应与物业管理企业原有的房屋租赁管理制度相一致,并达到操作过程中的直观、方便、实用、安全等要求。

3.2 系统应用现状调查

当前,许多物业管理企业的房屋租赁信息管理都是记录在纸张上,人力资源所占用的比例比较大,通常是各个主要负责人用书面形式在管理房屋租赁信息的,效率非常低下。而且容易造成数据打印、汇总、房屋信息更新不及时,数据容易丢失、损坏,不易保存且保密性很差,给公司和客户带来损失。

3.3 系统需求描述:

本系统业务描述如下: (1)用户登陆管理功能:

①本系统共分有两类用户(系统管理员、普通用户),各类用户分别享有不同的权限,但是都必须要登录,并由系统判定其权限后才可以使用本系统;

②管理员可添加用户,确定用户功能权限,并可修改、删除和查看用户信息; 用户可以修改自己的密码和查看个人资料; (2)房屋信息管理功能:

①普通用户和管理员可以添加房屋信息,并设置状态(包括“已出租”、“未出租”、“已预订”、“洽谈中”);

②普通用户和管理员可以修改和删除未出租的房屋; ③普通用户和管理员可查询和统计所有的房屋状态清单;

④求租客户可预定租房,缴纳订金过后,由普通用户或者管理员在预定租房中添加客户预订租房,(系统将自动将房屋信息标记为“已预订”);

⑤普通用户和管理员可以修改和删除预定租房的房屋和客户信息; ⑥普通用户和管理员可以查询所有预订的房屋和客户清单。 (3)客户信息管理功能:

①普通用户和管理员可以添加出租客户以及求租客户信息; ②普通用户和管理员可以修改和删除出租客户和求租客户信息;

第 3 页 共 32 页

③普通用户和管理员可查询和统计所有的客户信息清单; (4)交易信息管理功能:

①普通用户和管理员可以添加房屋出租交易信息,并设置状态(包括“交易成功”、“洽谈中”、“已预订”、“交易失败”);

②求租客户预定租房,缴纳订金过后,可与房东商谈租房事宜,此时由普通用户或者管理员修改交易信息中的状态为“洽谈中”,(系统将自动将房屋信息标记为“洽谈中”);

③房东与住户签订租房合同后,普通用户和管理员将修改交易信息为“交易成功”(系统将自动将房屋信息标记为“已出租”);

④假如房东与住户商谈不成功,则普通用户和管理员将修改交易信息为“交易失败”(系统将自动将房屋信息标记为“未出租”);

⑤普通用户和管理员可以查看到住户应缴纳租金后向客户发出消息提醒,催促其按时缴纳租金;

⑥普通用户和管理员可查询、添加、修改和删除所有的交易信息以及租金统计信息; (5)系统设置管理功能:

此模块用于管理员和系统开发人员使用,方便管理员和系统开发人员添加,删除以及修改需要的菜单等。

3.4 系统接口需求分析

对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。人机界面设计的质量直接影响用户对软件产品的评价,所以我们对人机界面的设计要给予足够重视。所以本系统采用了Windows 的通用图形界面,界面具有一致性,简洁明了美观,便于用户操作。

3.5 系统开发环境及开发工具

3.5.1 系统开发环境

(1)软件:

①Windows 7 操作系统 ②JDK1.6

③MyEclipse10.0开发工具 ④Oracle数据库 (2)硬件:

①一台性能一般的个人计算机

第 4 页 共 32 页

3.5.2 系统的开发工具

(1)JDK1.6

JDK(Java Development Kit ) 是Java开发工具包的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境,是一切java应用程序的基础,所有的Java应用程序都是构建在这个之上的。而本系统采用的开发语言之一就是Java,所以在开发之前必须安装好JDK,而本机选择安装的版本是比较主流的JDK1.6。

(2)MyEclipse10.0

本系统采用MyEclipse10.0作为后台开发工具。该版本使用最高级的桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0. 对检索功能以及错误查询功能更加强大,包括对JS文件的错误查询。MyEclipse10.0能够完整的支持本系统所使用的两种开发语言Java和Html,所以MyEclipse10.0是非常合适作为本系统开发工具的。

(3)Oracle数据库

Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完善的管理数据的功能;作为一种关系型数据库,它是一个完整的相关产品;作为一个分布式的数据库,它实现了分布式处理功能。并且只要在一种机型上学习了Oracle知识,就能运用于在各种类型的机器上。

相对于其他数据库来说,Oracle数据库的优势很多,所以本系统选择Oracle数据库为底层支持平台。

3.6 其他需求分析

本系统应具有良好的可维护性、可靠性、可理解性以及高效率。便于用户的理解和操作。可维护性包含了可读性、可测试性等含义。可靠性一般包含正确性和健壮性。开发过程中,应在各个矛盾的目标之间作衡量,并在有限的条件下(经费、时间、可用的软、硬件资源等),以便使上述各个方面都得到最大限度的满足。

第 5 页 共 32 页

4 系统总体设计

4.1 系统架构设计

系统主体架构采用MVC设计模式即MVC框架,MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。使系统业务逻辑与用户应用界面分开。它的工作原理如图4.1所示:

图 4.1 MVC模式的工作原理图

本系统采用MVC结构设计,用户通过界面向业务逻辑层发送请求,业务逻辑层遵守一定的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成以类的形式返回给用户界面层。这种方式在一定程度上增加了数据库的安全性。上面的View(视图)显示数据(数据库记录),Controller(控制器)处理输入(写入数据库记录),Model(模型)表示应用程序核心(比如数据库记录列表)。

4.2 系统功能模块划分和结构设计

系统的总体设计的主要内容之一的就是系统模块结构设计,其任务是合理的进行模块的分解和定义,把每个子系统划分成一个个模块,并通过模块结构图把分解的模块按层次结构联系起来。模块结构图是结构设计中描述系统结构的图形工具。作为一种文档,它必须严格的定义模块的名字、功能和接口,同时还应当在模块结构图上反映出结构化设计的思想。系统逻辑模型中数据流图模块是逻辑处理模块,该模型并不表明模块的物理组成和实现,同样的,也看不出模块的层次关系,因此在系统结构设计中要将数据流图中的每个逻辑模块进行进一步的分解,用模块结构图来确定系统的层次结构关系,并且将系统的逻辑模型转换为物理模型。

小型房屋租赁管理系统包括普通用户模块以及系统管理员两个基本模块。其中系统

第 6 页 共 32 页

管理员模块又可以详细划分为个人信息管理模块、房屋信息管理模块、客户信息管理模块、交易信息管理模块和系统设置管理模块。而普通用户模块又可以详细划分为个人信息管理模块、房屋信息管理模块、客户信息管理模块、交易信息管理模块,本系统采用Html+Java+Oracle 设计模式,Html页面用于给用户提供界面,提交参数及显示结果。通过Java处理参数并连接数据库,从数据库中获得用户请求的信息再交付给Java处理交付个用户显示在Html页面。 4.2.1 系统的数据流程分析

整个系统从总体上由个人信息管理、房屋信息管理、客户信息管理、交易信息管理以及系统设置五大部分组成,每一部分主要功能如下: 1.个人信息管理:

①实现查看用户的个人信息 ②实现用户密码的修改 2. 房屋信息管理:

①出租房屋基本信息的管理 ②实现房屋预定功能 3. 客户信息管理:

①出租户基本资料管理 ②求租户基本资料管理 4. 交易信息管理

①交易信息,分基础信息、房屋信息、房东信息、房客信息等 ②租金统计,分客户信息、房屋信息等

①用户基本信息,增删改查用户,分配修改用户角色等 ②模块菜单管理,增加修改菜单等 4.2.2 系统功能模块图

第 7 页 共 32 页

5. 系统设置功能:

个人信息 房屋信息 客户信息 交易信息 系统设置 小型房屋租赁管理系统 个 人 信息 查看

用户密码修改 出租房信息管理 预定租房管理 出租户基本资料 求租户基本资料 交理租易金信统息计管信理息管房屋统计 用户信息管理 模块信息管理 定金收取 押金收取 租户信息求租客户 财务财务管财务管理 租金收取 租金管理 定金退还 押金退还 财务财务管统计报表 历史租户 现有合同 历史合同 预定单统定金统计 租金统计

图4.2 系统功能模块图

4.3 系统主控流程

从上面的系统功能结构图和系统主要各功能模块定义,我们对本系统有了一个大概的了解。下面从系统流程方向给出使用该系统的主控流程,系统管理员或是客户首先进入登录模块,输入正确的用户名和密码进入各自的管理模块,然后可在相应的模块中进行需要的操作。完成相应的操作后可以安全退出该管理模块,下次登录还是按照这样的步骤进行。其流程图如图4.3所示:

第 8 页 共 32 页

图 4.3 系统流程图

第 9 页 共 32 页

5 数据库设计

数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,确立数据库及其应用系统,让其能够有效的快速的存储数据,使各种用户的应用需求(信息要求和处理要求)得到满足。

数据库设计对一个系统来说十分重要,由于数据库结构的好坏会直接对系统的效率及实现效果产生影响,所以有效的合理的数据库结构设计将会提高数据存储的效率,可以保证数据的完整和一致性。下面将依次从数据库需求分析,数据库概念结构设计,数据库逻辑结构设计阐述本系统在数据库方面的设计。

在数据库管理系统的支持下,数据完全独立于应用程序,并且能被多个用户或程序共享,其关系如图5.1所示。

应用程序1 应用程序2 应用程序3 图5.1 应用程序与数据库的关系

数据库 管理系统 数据库

5.1 数据库需求分析

通过上述系统功能的分析,得出小型房屋租赁管理系统系统具有如下需求信息: (1)系统用户包括系统管理员和普通用户。

(2)不同的用户角色拥有不同的权限,需要对权限进行验证。

(3)系统管理员可以添加用户,添加成功后可以登录系统进行相关权限的操作。 (4)系统管理员可以对系统、个人信息、房屋信息、客户信息、交易信息、系统设置进行管理。另外,也可以对系统进行整体管理。

综上所述,我们设计如下所示的数据项和数据结构。

第 10 页 共 32 页

用户信息表:包括的字段名有用户ID、编码、用户姓名、年龄、性别、密码、角色ID、联系电话、住址、身份证号码、邮箱、备注、创建人、创建时间、最后修改人、最后修改时间。

角色信息表:包括的字段名有角色ID、角色名称、备注、创建人、创建时间、最后修改人、最后修改时间。

模块信息表:包括的字段名有模块ID、模块名称、备注、创建人、创建时间、最后修改人、最后修改时间。

菜单信息表:包括的字段名有菜单ID、菜单编码、菜单名称、菜单所在路径、菜单所属模块ID、备注、创建人、创建时间、最后修改人、最后修改时间。

角色-菜单表:包括的字段名有主键ID、角色ID、菜单ID、备注。

出租房屋信息表:包括的字段名有房屋ID、房屋居室、房屋面积、预期租赁价格、补充描述、租赁时间、房屋地址、客户ID、房屋编码、房屋出租状态、备注、创建人、创建时间、最后修改人、最后修改时间。

预定租房信息表:包括的字段名有订单ID、订单编号、预订房ID、求租户ID、订金、订金有效期、计划租期、计划起租日期、预订日期、备注、创建人、创建时间、最后修改人、最后修改时间。

出租户信息表:包括的字段名有出租户ID、出租户编码、出租户姓名、年龄、性别、出租户联系电话、出租户家庭住址、出租户身份证号码、邮箱、备注、创建人、创建时间、最后修改人、最后修改时间。

求租户信息表:包括的字段名有求租户ID、求租户编码、求租户姓名、年龄、性别、求租户身份证号码、联系电话、家庭住址、邮箱、房型(居室)要求、面积要求、意向价位、意向租期、意向地段、意向房屋编码、备注(其他要求) 、创建人、创建时间、最后修改人、最后修改时间。

交易信息表:包括的字段名有交易ID、交易编码、租赁房ID、房客ID、交易时间、租金、佣金(手续费)、交易状态、押金、租期、备注、创建人、创建时间、最后修改人、最后修改时间。

租金统计表:包括的字段名有收费ID、收费编号、租金年份、租金月份、已交租金、欠费金额、房屋ID、备注、创建人、创建时间、最后修改人、最后修改时间。

5.2 数据库逻辑结构设计

数据库的概念结构设计结束后,下一步我们要做的是将上面数据库的概念结构转化为Oracle数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在这里我们将着重介绍该系统中的以下这些表。 (1)用户信息表

第 11 页 共 32 页

该表表示的是系统用户的一些基本信息。其中,USERID是用户ID,它是该表的主键,不能为空。一个USERID号唯一确定一个用户,用来方便数据库查询等操作。

USERNAME表示USERID号对应的用户姓名,USERCODE 表示USERID号对应的用户编

码,PASSWORD是用来登录系统的密码,其它字段名是USERID对应用户的另一些基本属性。如表5.1所示:

表 5.1 WS_USER表 字段名称 USERID USERCODE USERNAME PASSWORD ROLEID AGE SEX_ID PHONENUMBER ADDRESS IDCARD EMAIL REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 用户ID 用户编码 用户姓名 密码 用户角色 年龄 性别 手机号码 家庭住址 身份证号码 邮箱 备注 创建人 创建事件 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(22) VARCHAR2(50) VARCHAR2(22) NUMBER(1) NUMBER(3) NUMBER(1) VARCHAR2(11) VARCHAR2(200) VARCHAR2(18) VARCHAR2(50) VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 (2)角色信息表

该表表示的是角色的基本信息。同样地,ROLEID是角色ID,它是该表的主键,不能为空。一个ROLEID只能唯一确定一个角色。另外,该表中包括了角色的其他一些基本信息,如角色名称。如表5.2所示:

表 5.2 WS_ROLE表

字段名称 ROLEID ROLENAME REMARK CREATED_BY CREATION_DATE 字段说明 角色ID 角色名称 备注 创建人 创建时间 数据类型和长度 NUMBER VARCHAR2(10) VARCHAR2(200) VARCHAR2(30) DATE 第 12 页 共 32 页

是否为空 not null null null null null 主键否 是 否 否 否 否

LAST_UPDATED_BY LAST_UPDATE_DATE 最后修改人 最后修改时间 VARCHAR2(30) DATE null null 否 否 (3)模块信息表

该表表示的系统模块的基本信息。同样地,MODULEID是表示系统模块ID,它是该表的主键,不能为空。用来方便对系统模块的增删改查等操作。另外该表包含了系统模块名称等信息。如表5.3所示:

表 5.3 WS_MODULE表 字段名称 MODULEID MODULENAME REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 模块ID 模块名称 备注 创建人 创建时间 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(100) VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null 主键否 是 否 否 否 否 否 否 (4)菜单信息表

MENUID表示菜单ID,是该表的主键,不能为空。MENUNAME表示MENUID一一对应的菜单名称。MENUURL表示MENUID对应的菜单对应的路径。其中PARENT_ID是该表的外键,是外连接WS_MODULE表的主键MODULEID。另外该表中包含系统菜单的其他信息。如表5.4所示:

表 5.4 WS_MENU表 字段名称 MENUID MENUCODE MENUNAME MENUURL PARENT_ID REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 菜单ID 菜单编码 菜单名称 菜单所在路径 菜单所属模块 备注 创建人 创建时间 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(20) VARCHAR2(20) VARCHAR2(250) NUMBER VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 (5)角色-菜单表

每个不同的角色进入系统是相对应了不同的菜单,此表就表示每个角色对应了哪些

第 13 页 共 32 页

菜单,RMID是该表的主键,不能为空。ROLEID和MENUID是该表的外键。其中ROLEID为角色信息表的主键,MENUID为菜单信息表的主键。如表5.5所示:

表 5.5 WS_ROLEMENU表 字段名称 RMID ROLEID MENUID REMARK 字段说明 主键ID 角色ID 菜单ID 备注 数据类型和长度 NUMBER NUMBER NUMBER VARCHAR2(200) 是否为空 not null null null null 主键否 是 否 否 否 (6)出租房屋信息表

当一般出租户有房屋出租时,需要在在系统中添加或者修改等操作,会涉及到此表。HOUSE_ID是该表的主键,不能为空,唯一的确定一套或者一间房屋。CUSTOMER_ID是该表的外键,为出租户信息表的主键。LEASESTATE表示房屋出租状态,用数字表示,0表示洽谈中, 1表示未出租, 2表示已出租,3表示已预定。另外该表中包含出租房屋的其他信息。如表5.6所示:

表 5.6 HOUSE表

字段名称 HOUSE_ID HOUSE_CODE LEASESTATE RESIDENCE ACREAGE PRICE DESCRIBE TIME SITE CUSTOMER_ID REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 房屋ID 房屋编码 房屋出租状态 房屋居室 房屋面积 预期租赁价格 补充描述 可租赁时间 房屋地址 客户ID 备注 创建人 创建时间 最后修改人 数据类型和长度 NUMBER VARCHAR2(20) NUMBER(1) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(100) VARCHAR2(40) VARCHAR2(100) NUMBER VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) 是否为空 not null null null null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 最后修改时间 DATE (7)预订租房信息表

当有求租户看上某个房屋,需要预订时,会涉及到对此表的操作。SUBSCRIBE_ID是该表的主键,不能为空。HOUSE_ID和TENANT_ID是该表的外键,其中HOUSE_ID

第 14 页 共 32 页

为出租房屋信息表的主键。TENANT_ID为求租户信息表的主键。另外该表中包含预订租房的其他信息。如表5.7所示:

表 5.7 SUBSCRIBE表 字段名称 SUBSCRIBE_ID SUBSCRIBE_CODE HOUSE_ID TENANT_ID SUBSCRIPTION PERIOD_OF_VALIDITY TENANCY PLANS PLANS_DATE REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 订单ID 订单编号 预订房ID 求租户ID 订金 订金有效期 计划租期 计划起租日期 预订日期 备注 创建人 创建时间 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(20) NUMBER NUMBER VARCHAR2(20) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 (8)出租户信息表

该表表示的是出租户的一些基本信息。其中,CUSTOMER_ID是出租户ID,它是该表的主键,不能为空。一个CUSTOMER_ID号唯一确定一个出租户,用来方便数据库查询等操作。CUSTOMER_NAME表示CUSTOMER_ID号对应的出租户姓名,

CUSTOMER_CODE表示CUSTOMER_ID号对应的出租户编码,SEX_ID表示出租户性别,

用数字表示,1代表男,2代表女。其它字段名是CUSTOMER_ID对应出租户的另一些基本属性。如表5.8所示:

表 5.8 CUSTOMER_INFO表 字段名称 CUSTOMER_ID CUSTOMER_CODE CUSTOMER_NAME AGE SEX_ID PHONENUMBER ADDRESS 字段说明 出租户ID 出租户编码 出租户姓名 年龄 性别 联系电话 家庭住址 数据类型和长度 NUMBER VARCHAR2(20) VARCHAR2(50) NUMBER(3) NUMBER(1) VARCHAR2(11) VARCHAR2(100) 第 15 页 共 32 页

是否为空 not null null null null null null null 主键否 是 否 否 否 否 否 否

IDCARD EMAIL REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 身份证号码 邮箱 备注 创建人 创建时间 最后修改人 最后修改时间 VARCHAR2(40) VARCHAR2(50) VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE null null null null null null null 否 否 否 否 否 否 否 (9)求租户信息表

该表表示的是求租户的一些基本信息。其中,TENANT_ID是求租户ID,它是该表的主键,不能为空。一个TENANT_ID号唯一确定一个求租户,用来方便数据库查询等操作。TENANT_NAME表示TENANT_ID号对应的求租户姓名,TENANT_CODE表示

TENANT_ID号对应的求租户编码,SEX_ID表示求租户性别,用数字表示,1代表男,2

代表女。HOUSE_CODE是该表的外键,与房屋信息表的HOUSE_CODE相连接。其它字段名是TENANT_ID对应求租户的另一些基本属性。如表5.9所示:

表 5.9 FORTENANTS表 字段名称 TENANT_ID TENANT_CODE TENANT_NAME AGE SEX_ID PHONENUMBER ADDRESS IDCARD EMAIL RESIDENCE ACREAGE PRICE TIME SITE HOUSE_CODE REMARK CREATED_BY CREATION_DATE 字段说明 求租户ID 求租户编码 求租户姓名 年龄 性别 联系电话 家庭住址 身份证号码 邮箱 数据类型和长度 NUMBER VARCHAR2(20) VARCHAR2(50) NUMBER(3) NUMBER(1) VARCHAR2(11) VARCHAR2(100) VARCHAR2(40) VARCHAR2(50) 是否为空 not null null null null null null null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 房型(居室)要求 VARCHAR2(20) 面积要求 意向价位 意向租期 意向地段 意向房屋编码 VARCHAR2(20) VARCHAR2(20) VARCHAR2(40) VARCHAR2(100) VARCHAR2(20) 备注(其他要求) VARCHAR2(200) 创建人 创建时间 VARCHAR2(30) DATE 第 16 页 共 32 页

LAST_UPDATED_BY LAST_UPDATE_DATE 最后修改人 最后修改时间 VARCHAR2(30) DATE null null 否 否 (10)交易信息表

该表表示的是房屋租赁交易的一些基本信息。其中,TRANSACTION_ID是交易信息ID,它是该表的主键,不能为空。一个TRANSACTION_ID号唯一确定一笔交易信息,用来方便数据库查询等操作。TRANSACTION_CODE表示TRANSACTION_ID号对应的交易单号,SUCCESS表示交易信息的状态,用数字表示,0为洽谈中,1交易失败,2为交易成功,3为已预订。HOUSE_ID和TENANT_ID是该表的外键。其中HOUSE_ID是出租房屋信息表的主键,TENANT_ID是求租户信息表的主键。其它字段名是TRANSACTION_ID对应交易信息的另一些基本属性。如表5.10所示:

表 5.10 TRANSACTION_INFO表 字段名称 TRANSACTION_ID TRANSACTION_CODE HOUSE_ID TENANT_ID TIME RENT COMMISSION DEPOSIT LEASE_TERM SUCCESS REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 交易ID 交易单号 租赁房ID 求租户ID 交易时间 租金 佣金,手续费 押金 租期 交易状态 备注 创建人 创建时间 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(20) NUMBER NUMBER VARCHAR2(40) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(40) NUMBER(1) VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 (11)租金统计信息表

该表表示的是所有已成功交易的房屋所需缴纳租金的一些基本信息。其中,

STATISTICS_ID是收费ID,它是该表的主键,不能为空。一个STATISTICS_ID号唯一确

定一笔成功交易所应该缴纳的租金的所有信息,用来方便数据库查询等操作。

STATISTICS_CODE表示STATISTICS_ID号对应的收费单号。 HOUSE_ID是该表的外键,

出租房屋信息表的主键。其它字段名是STATISTICS_ID对应租金统计的另一些基本属性。如表5.11所示:

第 17 页 共 32 页

表 5.11 RENT_STATISTICS表 字段名称 STATISTICS_ID STATISTICS_CODE YEAR MONTH HAVE_PAY ARREARAGE HOUSE_ID REMARK CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE 字段说明 收费ID 收费单号 租金年份 租金月份 已交租金 欠费金额 出租房屋ID 备注 创建人 创建时间 最后修改人 最后修改时间 数据类型和长度 NUMBER VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) VARCHAR2(20) NUMBER VARCHAR2(200) VARCHAR2(30) DATE VARCHAR2(30) DATE 是否为空 not null null null null null null null null null null null null 主键否 是 否 否 否 否 否 否 否 否 否 否 否

第 18 页 共 32 页

6 系统详细设计

6.1 数据库的连接

该系统的数据库采用的是Oracle,继承Jfinal框架中JFinalConfig类,重写configPlugin方法,配置名为datasources的txt文件,其作用是建立连接,发送SQL语句,处理返回的结果。该系统与Oracle数据库连接的部分代码如下:

public void configPlugin(Plugins me) { // 配置C3p0数据库连接池插件

}

配置的datasources.txt文档中的代码如下: driverClass = oracle.jdbc.driver.OracleDriver jdbcUrl = jdbc:oracle:thin:@127.0.0.1:1521:house filters = stat,wall user = wangshuang password = w123456

这里需要注意的是datasources.txt文档中jdbcUrl是数据库所在的路径,user是连接数据库的用户名,password是连接数据的密码。

C3p0Plugin c3p0Plugin = new C3p0Plugin(

getProperty(\"jdbcUrl\"), getProperty(\"user\"),

getProperty(\"password\").trim(),\"oracle.jdbc.driver.OracleDriver\");

me.add(c3p0Plugin);

// 添加自动绑定model与表插件 AutoTableBindPlugin atbp = new

AutoTableBindPlugin(c3p0Plugin,SimpleNameStyles.LOWER); atbp.setShowSql(true); // 设置Oracle数据库方言

atbp.setDialect(new OracleDialect());

// 配置属性名(字段名)大小写不敏感容器工厂

atbp.setContainerFactory(new CaseInsensitiveContainerFactory()); me.add(atbp);

第 19 页 共 32 页

6.2 系统登录界面设计

对于一个完整的小型房屋租赁管理系统系统而言,不仅要求功能齐全、操作简单,还要有良好的设计风格和简洁的系统界面。登录界面对于整个系统来说是最基本的但是十分地重要,因为它设置了进入本系统的用户和口令,防止非法用户进入系统,破坏系统安全和所保存的数据,只有合法的用户在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误。这样就对使用者有了限制,增加了系统的安全性和保密性,便于控制和管理,有利于系统的维护。其用户登录界面如图6.1所示所示:

图 6.1 用户登录界面

如果用户输入的用户名或者密码不合法时就会调用alert命令语句给出警告信息。用户需仔细检查重新输入。这也是为了增加系统安全性。

如果当用户输入的用户名或者密码合法时,就要进入后台,运行SQL查询语句来验证登录账号和登录密码信息是否正确。验证通过后,还需要根据传进来的用户名查找用户角色所属,然后根据角色显示该角色所拥有的模块和菜单。

6.3 系统主界面的设计

第 20 页 共 32 页

当用户登录验证成功进入小型房屋租赁管理系统,首先映入眼帘的就是系统主界面,所以一个成功的管理系统的主界面是应该让人看着赏心悦目,使用简单,操作简洁,用户所需要使用的一切功能都能一目了然。如图6.2所示:

图 6.2 系统主界面

当用户登陆成功进去主界面时,系统会根据登陆时的用户名运行SQL查询语句来查找用户所属角色,然后根据角色显示该角色所拥有的模块以及模块下的菜单。

6.4 个人信息管理设计

点开个人信息模块,里面有两个菜单,个人信息和修改密码。点开个人信息,在左边增加一个TAB,能够查看当前用户的基本信息,点开修改密码,将会出现修改密码的界面,如图6.3.和图6.4所示:

第 21 页 共 32 页

图 6.3 个人信息

图 6.4 修改密码

修改密码时需要先输入旧密码,也就是现在用的密码,然后输入两次新密码,两次新密码要相同,如果不相同,系统会弹出错误提示,然后进入数据库修改密码,先验证旧密码,旧密码验证通过,再update新密码。

6.5 房屋信息管理设计

第 22 页 共 32 页

房屋信息模块下有两个子菜单,为出租房信息管理和预定租房管理,包含了增加、删除、修改、查询等功能,界面如图6.5和图6.6所示:

图 6.5 出租房信息

图 6.6 预定租房信息

出租房信息管理中,可以增加、删除、修改、查询出租房的所有信息,出租状态不同,所标志的颜色也不一样,让用户能够一目了然,不容易看错。

预定租房信息里可以查看到详细信息,包括预定租房基础信息,房屋信息,出租户信息,租户信息等,当添加一个未出租的房屋预订时,那么添加的这个房屋在房屋信息菜单里面的房屋出租状态会自动更换为“已预订”。

6.6 客户信息管理设计

客户信息模块下有两个子菜单,为出租户信息和求租户信息,界面和功能类似,求

第 23 页 共 32 页

租户信息多了一个房屋意向信息,界面如图6.7和图6.8所示:

图 6.7 出租户信息

图 6.8 求租户信息

当有新的客户需要登记或者原有客户资料有变动时,就需要在次模块中添加或者修改,在求租户信息模块中可以点击展开查看房屋意向信息。

6.7 交易信息管理设计

第 24 页 共 32 页

交易信息模块下,有两个子菜单,为交易信息和租金统计,在交易信息中,点开明细查询,可以看到交易基础信息、房屋信息、房东(出租户)信息、房客(求租户)信息等。在租金统计中,点开明细查询,可看到房客(求租户)信息,界面如图6.9和图6.10所示:

图 6.9 交易信息

图 6.10 租金统计

交易信息中,当交易状态改为“交易成功”时,出租房屋信息的出租状态会自动改

为“已出租”,当交易状态改为“交易失败”时,出租房屋信息的出租状态会自动改为“未出租”,交易状态改为“洽谈中”时,出租房屋信息的出租状态会自动改为“洽谈中”,交易状态改为“已预订”时,出租房屋信息的出租状态会自动改为“已预订”。

第 25 页 共 32 页

6.8 系统设置管理设计

此模块只有当管理员进入本系统时才会显示,也只允许管理员才能够进行操作管理。此模块下拥有两个子菜单,分别为用户信息管理和模块管理,界面如图6.11和图6.12所示:

图 6.11 用户信息

图 6.12 模块管理

在用户管理模块当中,管理员可以添加新的用户,可以删除已有用户,修改用户的资料以及分配权限。在模块管理当中,管理员可以修改本系统中所有的菜单信息。

6.9 系统实现关键技术

6.9.1 JFinal框架技术

JFinal 是基于Java 语言的极速 WEB开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有Ruby、Python等动态语言的开发效率。JFinal 采用微内核全方位扩展架构,

第 26 页 共 32 页

全方位是指其扩展方式在空间上的表现形式。JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分组成。

JFinal架构十分简单,顶层是一个责任链模式变种,ActionHandler 内部结构也十分简单,是一个Command模式变种。 6.9.2 LigerUI技术

LigerUI是基于JQuery开发的一系列控件组,包括表单、布局、表格等等常用UI控件 使用LigerUI可以快速创建风格统一的界面效果。

LigerUI为我们提供了大多数UI控件的使用,如:Accordion,Combobox,Menu,Dialog,Tabs,Validatebox,Datagrid,Window,Tree等等。开发者不需要编写复杂的JavaScript,也不需要对CSS样式有深入的了解,开发者需要了解的只有一些简单的Html标签,就能够利用LigerUI轻松的打造出功能丰富并且美观的UI界面。

当然LigerUI作为开发框架的话也存在不少的Bug,用户查找解决方法时不像EasyUI那样容易找到解决方法。

但是是开源的,可以修改源代码来解决自己的问题。 6.9.3 B/S模式分析

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。

B/S最大的好处是,我们可以在任何地方不用安装专门的软件而进行操作,只要你有一台能上网的计算机就可以使用,客户端零安装、零维护。系统非常容易扩展。

使用B/S结构的越来越多,尤其是由于需求而促进了AJAX技术的发展,它的程序也可以在客户端的计算机上进行部分处理,从而大大降低了服务器的负担;而且增加了交互性,能进行局部实时刷新。

第 27 页 共 32 页

7 系统测试

7.1 登录功能测试

用户登录过程中,若输入的用户名或密码不正确,给出相应警告。如图7.1所示:

图 7.1 用户名或密码错误提示界面

如果输入的用户名和密码正确则登录成功,自动跳转到房屋租赁管理系统后台管理界面。

7.2 密码修改功能测试

进入系统后,选择密码修改菜单,若输入新密码不合法、旧密码不正确以及两次新密码不同,给出相应警告。如图7.2、图7.3和图7.4所示:

图 7.2 输入新密码不合法提示界面

图 7.3 输入旧密码错误提示界面

第 28 页 共 32 页

图 7.4 两次输入新密码不相同提示界面

7.3 其他功能模块测试

剩下的几个模块,比如出租房信息、预定租房、出租户信息、求租户信息、交易信息、租金统计、用户信息、模块管理等,界面基本一致,功能大致相同,很多功能的测试结果基本相同,比如预定租房系统,当填入信息为空时,会给出相应警告,如图7.5所示:

图 7.5 某些字段为空的提示界面

每一条信息都会存在一个唯一的编码,如果添加一条新的信息时,与已存在信息的编码重复,那么系统就会弹出一个已存在XX编码已存在的错误提示框,如图7.6所示:

图 7.6 编码重复的错误提示界面

第 29 页 共 32 页

结束语

经过几个月的努力,小型房屋租赁管理系统系统最后得以顺利完成。由于对房屋租赁管理需求做得不够细致,系统还存在许多业务逻辑方面的问题,有些特殊的业务流程也存在很多欠缺的地方。另外,系统的人性化设计、系统界面设计以及代码优化设计等方面也存在一些不足的地方。毕竟个人的能力还是有限的,还有很多知识需要继续学习、探讨和研究。通过对该系统的设计和实现,当然也使我了解并掌握了许多关于房屋租赁管理和JFinal框架以及MVC设计模式方面的知识。在系统开始设计和制作之前,我们应该做好充分的准备工作。首先,我认为在做系统的需求分析之前,应该着重熟悉下房屋租赁这个行业的相关资料以及设计和实现该系统的开发工具、开发语言和关键技术。同时可以为系统后期的设计和实现收集好相关重要的信息资料。其次,为了开发出能够真正的满足用户需求的软件产品,必须清楚地了解用户所有的需求。对用户需求的深入了解是作为软件开发工作获得成功的先决条件,不论后期的设计以及编码工作完成的如何完美,无法真正满足用户需求的程序只会令用户失望。所以在系统设计和实现之前,我们要做好充足的需求分析。然后,我们应该理清思路,有计划一步一步的进行,绝不能乱了阵脚。不要哪个模块都做一点,这样只会让工作效率低下,最后可能导致哪一个都做不好。还有应该根据软件开发过程一步一步地完成。最后,我觉得一个人的品质非常重要。一个系统设计和实现必须经过问题定义,可行性研究,需求分析,概要设计,详细设计,编码和单元测试,综合测试以及最后的维护这几个阶段,每个阶段有每个阶段的任务,这时候我们需要有耐心一步一步地把它们完成。当然,在整个设计和实现的过程中,我们也会遇到很多方面上的问题,这时候我们需要的是坚持,绝不容许自己就此放弃

第 30 页 共 32 页

参考文献

[1]郭赢发.《数据库原理与应用》(修订版)[M].西安:西安电子科技大学出版社,1999. [2]BruceEckel.《Java编程思想》 [M].机械工业出版社,2003.

[3]Brad Green,Shyam Seshadri. AngularJS[M].USA: O'Reilly Media,Inc,USA,2013. [4]王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006. [5]Goodman.D.JavaScript Handbook[M].Foster City CA:IDG Books,2002.

[6]Bruce Eckel.Thinking in Java(4th Revised edition)[M].USA:Prentice Hall,2006. [7]Karen Morton,Kerry Osborne,Robyn Sands,朱浩波.Oracle SQL高级编程[M].北京:人民邮电出版社,2011.

[8]陈宗斌.Ajax权威指南(第一版)[M]. 北京:机械工业出版社,2009.

[9]李松峰,曹力. JavaScript高级程序设计(第3版) [M]. 北京:人民邮电出版社,2012. [10]迈耶. CSS权威指南(第3版) [M]. 北京:中国电力出版社,2008.

第 31 页 共 32 页

致 谢

岁月如歌,光阴似箭,大学四年的生活虽然即将结束,但是未来的路还很长。在这里,非常感谢我的指导老师严权峰老师,感谢您在百忙之中对我毕业设计细心的指导,新锐的启发,认真的审阅。另外,还要感谢这四年以来教导过我的老师们。真心祝福您们一切都好。

感谢我的室友们一直以来的陪伴,大家一起努力维系着寝室那份家的融洽。在这四年里,我们一起疯,一起闹,一起快乐,一起悲伤,一起走过了1000多个日日夜夜。转眼之间,我们都要毕业了,我们要各奔东西了,只希望在你们的回忆里有个我,只希望以后还有再聚时。愿大家一切都顺利!

最后要感谢我的爸爸妈妈,你们的养育之恩,无以回报。是你们教会了我很多做人的道理。我知道你们一直在背后默默的支持和帮助我。才使得我有今天的成就。在未来的日子里,我会更加努力坚持并实现我的梦想,希望不会辜负你们的期望。我也会尽我所能让你们过得更加幸福快乐。

第 32 页 共 32 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务