基于java和mysql的物业管理系统论文

基于java和mysql的物业管理系统论文
基于java和mysql的物业管理系统论文

目录

1 绪论 (3)

1.1 背景介绍 (3)

1.1.1 项目开发背景 (3)

1.1.2 研究目标 (3)

1.2 相关技术介绍 (3)

1.2.1 B/S模式 (3)

1.2.2 JavaEE (4)

1.2.3 MySQL (4)

1.2.4 AJAX (4)

1.3 可行性分析 (5)

1.4 系统环境配置 (5)

1.4.1安装jdk (5)

1.4.2安装tomcat (5)

1.4.3安装MySQL (5)

1.4.4系统布署 (5)

2 系统分析 (5)

2.1架构分析 (5)

3 系统设计 (6)

3.1 数据库设计 (6)

4 系统功能实现 (9)

4.1 后台管理系统 (9)

4.1.1 登录后台管理系统 (9)

4.1.2住户管理模块 (10)

4.1.3设备管理模块 (10)

4.1.4 人事管理模块 (10)

4.1.5部门管理模块 (14)

4.1.6 财务管理模块 (15)

4.1.7 房产管理模块 (16)

4.1.8 系统管理模块 (18)

5 测试 (20)

5.1 web系统测试 (20)

5.1.1 界面测试 (21)

5.1.2 功能测试 (21)

5.1.3 性能测试 (21)

5.1.4 可用性测试 (22)

参考文献: (22)

附录主要代码 (24)

物业管理系统

xx xxxxx

数学科学学院信息与计算科学 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.1 B/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.2 JavaEE

JavaEE是一种利用Java 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。JavaEE技术的基础就是核心Java平台,JavaEE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

JavaEE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,JavaEE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

1.2.3 MySQL

MySQL是一个小型关系型数据库管理系统,与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster 的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL 是开源软件,因此可以大大降低总体成本。

1.2.4 AJAX

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

通过 AJAX,JavaScript可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,JavaScript 可在不重载页面的情况与 Web 服务器交换数据。

AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。JavaScript XML HTML CSS 在 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 用户信息表

2. resident信息表

表3-2 resident信息表

3. emp员工信息表

表3-3 车位信息表

4.Agepart年龄段信息表

表3-4 车位出租信息表

5.Askleave请假情况表

表3-5 用水量表

6.楼栋信息表

表3-6 用电量表

7.学位信息表

表3-7 燃气用量表

8.Department部门信息表

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

9.Unit单元信息表

表3-9收费信息表

10.Room房间信息表

表3-10物业费用表

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 添加员工

关键代码如下

//添加员工信息

private void add(HttpServletRequest request, HttpServletResponse response) {

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

boolean flag=false;

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

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

int flagresult=0;

if(flag){

//如果员工编号已存在

flagresult=1;

request.setAttribute("flagresult", flagresult);

try {

request.getRequestDispatcher("renshiguanli/addEmp.jsp").forward(req

uest, response);

} catch (ServletException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

//如果员工编号不存在

flagresult=0;

request.setAttribute("flagresult", flagresult);

//得到图片的路径

String imgpath=emp.getImgpath();

//得到图片格式

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

String

format=imgpath.substring(https://www.360docs.net/doc/8316994191.html,stIndexOf(".")+1);

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

String previmgpath=imgpath.substring(0,

https://www.360docs.net/doc/8316994191.html,stIndexOf("."))+"previmg"+imgpath.substring(https://www.360docs.net/doc/8316994191.html,stInde xOf("."));

File src=new File(imgpath);

File des=new File(previmgpath);

ImageUtil.getPreImage(src, des, format);

emp.setPrevimgpath(previmgpath);

}

int result=0;

result=es.add(emp);

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

addEmpcheck(emp);

String fileName=request.getParameter("fileName");

request.setAttribute("result", result);

try {

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

} catch (ServletException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

//运用反射保存

public int save(Object obj) {

Class clazz = obj.getClass();

String sql = "insert into t_"+clazz.getSimpleName().toLowerCase()+" values(null";

Field[] fs = clazz.getDeclaredFields();

List list = new ArrayList();

for(int i=1;i

sql += ",?";

String fieldName = fs[i].getName();

Method m = null;

try {

m =

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

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

} catch ( Exception e) {

e.printStackTrace();

}

}

sql += ")";

System.out.println(sql);

return this.updateData(sql, list.toArray());

}

4.1.5部门管理模块

查看部门信息如图4-5

图4-5部门信息列表

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

修改部门信息关键代码: