基于java和mysql的物业管理系统的开发与研究.docx

上传人:b****7 文档编号:11158789 上传时间:2023-02-25 格式:DOCX 页数:34 大小:602.45KB
下载 相关 举报
基于java和mysql的物业管理系统的开发与研究.docx_第1页
第1页 / 共34页
基于java和mysql的物业管理系统的开发与研究.docx_第2页
第2页 / 共34页
基于java和mysql的物业管理系统的开发与研究.docx_第3页
第3页 / 共34页
基于java和mysql的物业管理系统的开发与研究.docx_第4页
第4页 / 共34页
基于java和mysql的物业管理系统的开发与研究.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于java和mysql的物业管理系统的开发与研究.docx

《基于java和mysql的物业管理系统的开发与研究.docx》由会员分享,可在线阅读,更多相关《基于java和mysql的物业管理系统的开发与研究.docx(34页珍藏版)》请在冰豆网上搜索。

基于java和mysql的物业管理系统的开发与研究.docx

基于java和mysql的物业管理系统的开发与研究

 

物业管理系统

xxxxxxx

数学科学学院信息与计算科学2009级1班

指导教师xxx

摘要基于目前小区物业管理模式以及计算机技术的不断进步和发展,用计算机操作的小区物业管理系统是为小区管理者和小区用户更好的维护各项物业管理业务而开发的管理软件。

本系统应用JavaEE技术和MySql数据库系统组件来构成应用服务系统,实现方便快捷的前端Web登陆和查询,以及后台管理员进行各项物业管理。

本系统分为七个模块:

住户管理模块、设备管理模块、人事管理模块、部门管理模块、财务管理模块、房产管理模块、系统管理模块;本系统运用方便、操作简单,效率很高。

关键词物业管理、JavaEE、MySql、web、人事管理模块、系统管理模块

1绪论

1.1背景介绍

1.1.1项目开发背景

随着我国经济发展和城市开发,住宅小区越来越成为居住的主流,小区物业管理是针对当代社会这一市场需要应运而生的。

用计算机操作的小区物业管理系统是为小区管理者和小区用户更好的维护各项物业管理业务处理工作而开发的管理软件,根据需求分析,实现小区管理业务,效益已越来越明显。

因此,开发这样一套小区物业管理系统软件成为很有必要的事情,在本文中将就本次毕业设计我所开发的小区物业管理系统,谈谈其开发过程和所涉及到的问题及解决方法。

1.1.2研究目标

研究目标是利用JavaEE开发基于B/S结构的小区物业管理系统,实现小区物业管理的全部功能且便于维护更新。

1.2相关技术介绍

1.2.1B/S模式

B/S(Browser/Server)结构,即浏览器和服务器结构。

它是对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,server端访问数据库,形成所谓三层3-tier结构。

B/S结构使用的http协议,就是针对超级文本的,而超级文本自身就带着多媒体的韵味。

如今WEB技术的日益成熟,B/S结构浮出水面并呈现逐渐取代C/S的形势,使得教学软件系统的网络体系结构跨入一个新阶段。

B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。

只要有一台能上网的电脑就能使用,客户端零维护。

系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。

甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

1.2.2JavaEE

JavaEE是一种利用Java平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。

JavaEE技术的基础就是核心Java平台,JavaEE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。

其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

JavaEE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。

通过提供统一的开发平台,JavaEE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

1.2.3MySQL

MySQL是一个小型关系型数据库管理系统,与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。

对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开源软件,因此可以大大降低总体成本。

1.2.4AJAX

AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。

通过AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。

通过这个对象,JavaScript可在不重载页面的情况与Web服务器交换数据。

AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

AJAX可使因特网应用程序更小、更快,更友好。

JavaScriptXMLHTMLCSS在AJAX中使用的Web标准已被良好定义,并被所有的主流浏览器支持。

AJAX应用程序独立于浏览器和平台。

Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。

不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。

通过AJAX,因特网应用程序可以变得更完善,更友好。

1.3可行性分析

该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用mysql,这些软件在MIS开发中已被大量应用,技术上都比较成熟。

因此在技术上是可行的。

1.4系统环境配置

1.4.1安装jdk

本系统使用jdk1.6开发。

下载安装后,配置path环境变量。

1.4.2安装tomcat

本系统使用tomcat6.0作为web服务器,启动前需设置java_home环境变量。

1.4.3安装MySQL

本系统使用MySQL作为后台数据库。

1.4.4系统布署

将项目文件复制到tomcat6.0的安装路径下的webapps目录下。

启动tomcat,打开浏览器即可使用系统。

2系统分析

2.1架构分析

架构分析如下:

1.逻辑架构:

JSP+JavaBean+Database

(1)JSP负责页面表现

(2)JavaBean负责业务逻辑

(3)Database负责数据持久化操作

2.物理架构:

Web服务器一台,Database服务器一台

3.技术解决方案:

WebServer-Tomcat6.0,Database-MySQL

3系统设计

3.1数据库设计

设计数据库物理结构主要表如下:

1.user用户表

表3-1用户信息表

字段

字段类型

说明

id

Int

主键/自增

Username

varchar(20)

用户名

Password

varchar(20)

密码

Email

varchar(50)

用户Email

Phone

varchar(20)

手机号

2.resident信息表

表3-2resident信息表

字段

字段类型

说明

id

Int

主键/自增

Rsdname

varchar(255)

用户姓名

Gender

Int

性别

Phone

varchar(255)

手机号

Email

varchar(255)

Email

Age

Int

年龄

Degree

Int

学历

Identity

Varchar(255)

描述

Imgpath

varchar(255)

照片

Preimgpath

varchar(255)

预览照片

Build_id

Int

楼栋ID(外键)

Unit_id

Int

单元ID(外键)

3.emp员工信息表

表3-3车位信息表

字段

字段类型

说明

id

Int

ID(主键)

Name

varchar(20)

员工姓名

Empno

varchar(20)

员工号

Position

Int

职位

Phone

varchar(20)

手机号

Age

Int

年龄

Gender

Int

性别

Identity

Varchar(20)

描述

Entrytime

datetime

入职时间

Salarymon

Int

月薪

Department

Int

部门

4.Agepart年龄段信息表

表3-4车位出租信息表

字段

字段类型

说明

Id

Int

主键/自增

Part

Varchar(20)

年龄段

5.Askleave请假情况表

表3-5用水量表

字段

字段类型

说明

Id

int

主键/自增

Empno

varchar(20)

员工编号

Leavetime

date

请假时间

Leavedays

int

请假天数

6.楼栋信息表

表3-6用电量表

字段

字段类型

说明

Id

int

主键/自增

buildnum

varchar(255)

楼栋号

Buildname

varchar(255)

楼栋名

Addr

varchar(255)

地址

7.学位信息表

表3-7燃气用量表

字段

字段类型

说明

Id

int

主键/自增

Dname

varchar(20)

学位名字

8.Department部门信息表

表3-8水、电、燃气价格及物业费表

字段

字段类型

说明

Int

int

主键/自增

Depno

Varchar(20)

部门编号

Depname

Varchar(20)

部门名

Depphone

Varchar(11)

部门电话

Depcount

int

部门count

9.Unit单元信息表

表3-9收费信息表

字段

字段类型

说明

Id

int

主键/自增

Unitname

varchar(255)

单元名

Build_id

int

楼栋id/外键

10.Room房间信息表

表3-10物业费用表

字段

字段类型

说明

id

int

主键/自增

Roomtype

int

房间类型

Roomname

varchar(255)

房间名

Roomnum

int

房间号

Unit_id

int

单元号(外键)

4系统功能实现

4.1后台管理系统

4.1.1登录后台管理系统

登录界面设计如图4-1,管理员输入正确账号,密码即可登录系统。

图4-1登录界面

登录系统后进入首页界面如图4-2。

图4—2系统界面

4.1.2住户管理模块

作为物业管理系统,住户资料管理是最基本的管理功能,如图4-3界面用以查看住户详细资料。

图4-3住户资料列表

4.1.3设备管理模块

该模块实现对小区内各项公共设备(如:

路灯、排水,取暖,电,用水,煤气管等)的管理,为各项设备建立信息档案,记录各设备检查\维修\保养记录。

具体又分为设备登记、设备报修、设备检查和设备保养这四个子模块。

使用ajax异步验证

4.1.4人事管理模块

该模块主要是针对物业管理部门内部的工作人员的,实现对物业管理人员、保安/保洁人员的管理。

包括:

员工信息录入、查询、工资管理、员工考勤记录和员工考核记录这几个子模块。

添加员工

图4-4是添加员工的操作界面:

图4-4添加员工

关键代码如下

//添加员工信息

privatevoidadd(HttpServletRequestrequest,HttpServletResponseresponse){

//判断员工编号是否存在

booleanflag=false;

Empemp=(Emp)request.getAttribute("obj");

flag=es.isExist(emp.getEmpno());

intflagresult=0;

if(flag){

//如果员工编号已存在

flagresult=1;

request.setAttribute("flagresult",flagresult);

try{

request.getRequestDispatcher("renshiguanli/addEmp.jsp").forward(request,response);

}catch(ServletExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}else{

//如果员工编号不存在

flagresult=0;

request.setAttribute("flagresult",flagresult);

//得到图片的路径

Stringimgpath=emp.getImgpath();

//得到图片格式

if(imgpath!

=null&&imgpath.length()>0){

Stringformat=imgpath.substring(imgpath.lastIndexOf(".")+1);

//得到图片的预处理路径

Stringprevimgpath=imgpath.substring(0,imgpath.lastIndexOf("."))+"previmg"+imgpath.substring(imgpath.lastIndexOf("."));

Filesrc=newFile(imgpath);

Filedes=newFile(previmgpath);

ImageUtil.getPreImage(src,des,format);

emp.setPrevimgpath(previmgpath);

}

intresult=0;

result=es.add(emp);

//成功添加员工,就要把他的考勤初始化

addEmpcheck(emp);

StringfileName=request.getParameter("fileName");

request.setAttribute("result",result);

try{

request.getRequestDispatcher("renshiguanli/addEmp.jsp").forward(request,response);

}catch(ServletExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

//运用反射保存

publicintsave(Objectobj){

Classclazz=obj.getClass();

Stringsql="insertintot_"+clazz.getSimpleName().toLowerCase()+"values(null";

Field[]fs=clazz.getDeclaredFields();

Listlist=newArrayList();

for(inti=1;i

sql+=",?

";

StringfieldName=fs[i].getName();

Methodm=null;

try{

m=clazz.getDeclaredMethod(BeanUtil.getGetter(fieldName));

list.add(m.invoke(obj));

}catch(Exceptione){

e.printStackTrace();

}

}

sql+=")";

System.out.println(sql);

returnthis.updateData(sql,list.toArray());

}

4.1.5部门管理模块

查看部门信息如图4-5

图4-5部门信息列表

单击部门名称的时候,会弹出部门的详细信息如图4-6

修改部门信息关键代码:

varchart=newFusionCharts("Charts/Column3D.swf","ChartId","400","300","0","0");

varrs="${depData}";

varrs1=rs.replace(/\\"/g,"\"");

chart.setXMLData(rs1);

chart.render("chartdiv");

functionmyJS(a,b,c){

alert(a+"人数:

"+c);

}

图4-6部门信息

4.1.6财务管理模块

该模块主要实现对已经入住的住户进行费用(物业管理费、水费、电费和煤气费,暖气费)缴纳的各方面管理,具体包括以下几个部分:

收费类别设置、收费项目设置、计量单位设置、表设置、用户抄表、应收款和收款单等。

查看收费项目如图4-7

图4-7查看收费项目

添加收费项目如图4-8

图4-8添加收费项目

查询收费项目并分页关键代码如下:

StringcnumStr=request.getParameter("currNum");

StringpageSizeStr=request.getParameter("pageSize");

FeeTypefeetype=newFeeType();

Stringfeename=request.getParameter("feename");

Stringfeeprice=request.getParameter("feeprice");

Stringfeeunit=request.getParameter("feeunit");

feetype.setFeename(feename);

feetype.setFeeprice(Double.parseDouble(feeprice));

feetype.setFeeunit(feeunit);

intresult=fs.addFeeKind(feetype);

request.setAttribute("result",result);

request.setAttribute("currNum",cnumStr);

request.setAttribute("pageSize",pageSizeStr);

try{

request.getRequestDispatcher("feemanage/addfeekind.jsp").forward(request,response);

}catch(ServletExceptione)

4.1.7房产管理模块

房产管理

主要包括添加楼栋、楼栋列表、添加单元、添加房间类型、房间类型列表、添加房间和房产住户信息列表功能如图4-9。

图4-9房产管理

添加楼栋

根据房产开发计划,对于新建的楼栋进行添加。

包括js前台的动态验证如图4-10

图4-10楼栋添加

楼栋列表显示

显示楼栋的详细信息,包括分页如图4-11

图4-11楼栋列表

楼栋的编辑如图4-12

图4-12楼栋的编辑

楼栋的删除js代码如下:

functiondeleteone(build_id,obj){

//alert(build_id);

vardeleflag=window.confirm("确认删除吗?

");

if(deleflag){

$.ajax({

type:

'post',

url:

'HouseManageServlet.action',

data:

'method=deleteBuildOne&build_id='+build_id,

dataType:

'text',

success:

function(rs){

if(rs=="1"){

alert("删除了一条记录!

");

//obj.parentNode.parentNode.parentNode.removeNode(true);

obj.parentNode.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode.parentNode);

}elseif(rs=="0"){

alert("删除失败!

");

}

}

});

}

4.1.8系统管理模块

系统管理模块是整个物业管理系统的核心,在区分不同用户的使用权限、加强软件使用安全性和保证数据安全方面起着关键的作用。

具体包括:

用户管理(增删改查加分页)、更改密码、数据库备份、恢复这几个子模块。

账户添加主要代码如下:

账号异步验证是利用ajax实现

$.post('userServlet.action',{'username':

val,'cmd':

'checkUserName'},function(result){

if(result=="true"){

$("#unamemsg").html('账号已经存在!

');

unameFlag=false;

}else{

$("#unamemsg").html('该账户可用');

unameFlag=true;

}

});

密码强度检测是利用正则表达式和css实现

$("#password").keyup(function(){

varval=$(this).val();

if(val.length<3||val.length>10){

$("#pwdmsg").html('密码长度为3-10位!

');

pwdFlag=false;

}

else{

$("#pwdmsg"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1