基于Java的恒鑫物资租赁系统的设计与实现

阿西可可

发布日期: 2020-07-31 11:34:23 浏览量: 50
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

摘要

随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率。计算机信息处理系统的引进已彻底改变了许多系统的经营管理。恒鑫租赁站长期大量出租各型钢管、扣件、塔吊等建筑施工设备。

本系统为恒鑫租赁站提供了一个方便快捷的物资管理系统,方便出租物资的管理。系统功能主要包括:用户管理,包括管理员信息查看、管理员密码修改;正常订单管理:包括新增正常订单、修改有误订单、删除错误订单;资金结算管理:费用统计;材料租赁管理:包括订单出租查询、器材回收管理、日租金管理、仓库库存管理。

本系统开发工具采用Myeclipse,数据库设计采用MySQL数据库,开发模式采用JSP为视图层的MVC设计模式。系统界面友好、美观,系统程序冗余度度低,系统具有较强的可扩展性和可维护性。

关键词:物资;JSP;MVC;MySQL数据库;管理

1.引言

1.1 开发背景及现状

恒鑫租赁站长期大量出租各型钢管、扣件、塔吊等建筑施工设备。针对租赁器材品种繁多,租赁搭配麻烦,费用计算复杂。这些问题难题导致公司运营盈利管理不清晰,以及人工负担重,租赁过程中容易出错等问题,急切需要一款满足自身需求的管理软件,以提高办公效率。怎样才能更好的对建筑租赁行业进行管理,最好的方法就是用软件进行科学的管理。怎样设计才能更符合这个行业的应用,调查发现,目前国内外有关的系统软件都在向三方面靠拢:精细化、智能化、傻瓜化。

结合自身专业所学,把理论运用到实际而选定这一课题。希望最终该系统能取代人工管理的工作方式,避免由于手工记录、工作人员的疏忽等造成的各种错误,通过集中式的信息数据库,将企业的还、租、存等经营业务有机的结合起来,达到数据共享,降低成本,提高效率,改进服务的目的,进而提高租赁站的生产效率和管理水平。

1.2 本人主要工作

通过对系统的分析和研究,上网学习、借阅书籍和向老师请教针对性的学习相关技术知识,同时练习开发工具的使用和调试。根据所学知识和对课题的研究进行相应的调查和资料分析,针对前期的调查和将要用到的相关东西对系统做出相应的需求分析,并通过需求分析进行系统相关设计,最后针对所设计的各个模块进行编码、测试,分析系统的不足以备后期改进,并对整个学习和开发过程做出总结。

1.3 论文组织与结构

  • 第一部分:引言。简要描述了恒鑫租赁系统的开发背景及现状

  • 第二部分:系统分析。针对系统进行相应分析,做出需求分析和相关技术介绍

  • 第三部分:系统设计。主要介绍系统功能模块设计和数据库设计

  • 第四部分:系统实现。详细介绍系统底层数据库的实现、业务逻辑层实现、控制层实现、表现层的实现和公共组件的实现

  • 第五部分:系统测试。针对开发的系统进行了主要功能模块的测试并给出测试结果

  • 第六部分:结束语。本章对整个系统开发和论文书写工作进行总结,指出了还需改进的地方

2.系统分析

2.1 需求分析

2.1.1 功能型需求

恒鑫租赁站长期大量出租各型钢管、扣件、塔吊等建筑施工设备。本系统为恒鑫租赁站提供了一个方便快捷的物资管理系统,方便出租物资的管理。系统功能主要包括:用户管理,包括管理员信息查看、管理员密码修改;正常订单管理:包括新增正常订单、修改有误订单、删除错误订单;资金结算管理:费用统计;材料租赁管理:包括订单出租查询、器材回收管理、日租金管理、仓库库存管理等。

2.1.2 非功能性需求

此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面主要使用JSP技术完成,下面对MyEclipse、Tomcat和Mysql数据库进行简要介绍。

  • 开发工具:MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate

  • 运行环境:Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。可以这样认为,当在一台机器上配置好Apahce服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的

  • 数据库服务器:MySQL是当前一种较为流行的关系数据库,和其它的数据库管理系统(DBMS)相比,MySQL是一个开源免费的轻量级关系数据库。它适合在小、中型项目中使用

2.2 相关设计

2.2.1 开发方案选择:

B/S结构,即Browser/Server(浏览器/服务器)结构,在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S 结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网(VPN)。

2.2.2 开发技术选择

本系统采用的开发语言是JSP。JSP是运行在服务器端的脚本语言,它由传统的HTML代码和嵌入其中的Java代码组成。应用JSP,我们可以高效率的开发出安全性较高而且跨平台的Web应用程序,它拥有Java语言跨平台的特性以及业务代码分离、组件重用、基础Java Servlet功能和预编译等特征。

超文本标记语言HTML,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。工具选择Dreamweaver 8,其具有可视化编辑界面、扩展能力强、支持多平台和跨浏览器的特性。

2.3 设计模式

本系统采用JSP、Servlet、JavaBean的MVC三层设计模式。这种设计模式中,JavaBean组件用来实现相关的业务逻辑,充当着模型的角色;Servlet用来执行业务逻辑和负责程序的流程控制,充当着控制层的角色;JSP作为表现层的显示,充当着视图层的角色。

3.系统设计

3.1 系统总体设计

恒鑫租赁站开发设计的一款物资管理系统,方便出租物资的管理。系统主要功能包括:功能主要包括:用户管理,包括管理员信息查看、管理员密码修改;正常订单管理:包括新增正常订单、修改有误订单、删除错误订单;资金结算管理:费用统计;材料租赁管理:包括订单出租查询、器材回收管理、日租金管理、仓库库存管理。

3.2 系统功能结构图

系统功能结构图,如图1所示。

3.3 系统数据库设计

数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地保存数据,满足各种用户的应用需求(信息要求和处理要求)。

3.3.1 管理员表 (admin)

管理员表用来记录管理员登录时候所需的基本信息,如表3.1所示。

字段名 字段类型 长度 主/外键 字段值约束 对应中文名
Id Int 10 主键 Not null 管理员Id
Username Varchar 50 管理员账号
Password Varchar 50 管理员密码
Kind Int 11 管理员类别

3.3.2 客户表 (client)

客户表用来记录客户的基本信息,如表3.2所示。

字段名 字段类型 长度 主/外键 字段值约束 对应中文名
Id Int 10 主键 Not null 客户Id
Name Varchar 50 客户姓名
Phone Int 11 客户电话
Mail Varchar 20 客户邮箱
Description Varchar 1000 客户描述

3.3.3 物资表 (goods)

物资表用来记录物资的相关参数信息,如表3.3所示。

字段名 字段类型 长度 主/外键 字段值约束 对应中文名
Id Int 10 主键 Not null 物资Id
Name Varchar 50 物资名称
Money Int 11 物资价格
Num Int 11 物资库存
Description Varchar 1000 物资描述

3.3.4 租赁表 (rent)

租赁表用来记录租赁物资的行为记录,如表3.4所示。

字段名 字段类型 长度 主/外键 字段值约束 对应中文名
Id Int 10 主键 Not null 租赁Id
Uid Int 11 客户Id
Pid Int 11 物资Id
Time Varchar 30 租赁时间

3.3.5 租金表 (icome)

租金表用来记录租赁物资所付的租金的行为记录,如表3.5所示。

字段名 字段类型 长度 主/外键 字段值约束 对应中文名
Id Int 10 主键 Not null 租金Id
Money Int 11 租金数额
Content Varchar 1000 行为描述
Time Varchar 30 发生时间

4.系统实现

系统实现是在系统设计的基础上,针对系统各层次和各功能模块进行代码的编写,最终将设计方案转化可运行功能模块。

4.1 底层数据库的实现

先前我们已经确立了使用关系数据库MySQL作为本系统的数据库服务器,同时,我们对相应表进行了分析和设计,在此我们通过数据库设计工具建立数据库:wz和相应的数据库表,如表4.1所示。

数据库表名 说明
admin 后台管理员表
client 客户基本信息表
goods 材料信息表
rent 租赁行为记录表
icome 财务表

4.2 业务逻辑层的实现

业务逻辑层采用JavaBean来实现数据库连接和系统业务逻辑处理。主要实现类,如表4.2所示。

业务逻辑类 说明
AdminDAO.java 管理员业务逻辑处理类
ClientDAO.java 客户、租赁、财务业务逻辑类
GoodsDAO.java 材料业务逻辑处理类

4.3 控制层的实现

控制层采用Servlet来完成系统的逻辑控制。主要实现类,如表4.3所示。

业务逻辑类 说明
DoAdminLoginServlet.java 管理员登录控制类
ChangePasswordServlet 管理员密码修改控制类
AddAdminServlet 管理员添加控制类
ClientServlet.java 客户、租赁、财务管理控制类
GoodsServlet.java 材料信息管理控制类

4.4 表现层的实现

表现层是用户所接触的图形界面,所有界面的友好性是很重要的。在表现层的实现过程中,使用Dreamweaver网页设计工具和Photoshop图像处理工具对用户界面进行了精心设计。以下为主要用户界面设计,如图2、图3、图4和图5所示。

系统登录图

系统登录成功欢迎页

系统客户列表页

系统添加客户页

4.5 系统公共组件

4.5.1 采用JDBC的数据操作公共类

  1. package com.dao;
  2. import java.sql.*;
  3. public class DB
  4. {
  5. protected Connection conn=null;
  6. Private PreparedStatement pstmt=null;
  7. private Statement stmt= null;
  8. private ResultSet rs =null;
  9. //JDBC数据库连接配置信息
  10. String driver = "com.mysql.jdbc.Driver";
  11. String url = "jdbc:mysql://localhost/wz?useUnicode=true&characterEncoding=utf-8";
  12. String user = "root";
  13. String password = "root";
  14. //数据库连接方法
  15. public Connection getConn() throws Exception
  16. {
  17. Class.forName(driver);
  18. Connection conn = DriverManager.getConnection(url, user, password);
  19. return conn;
  20. }
  21. //关闭数据库操作方法
  22. public void closeAll( Connection conn, PreparedStatement pstmt, ResultSet rs ) {
  23. //如果rs不空,关闭rs
  24. if(rs != null){
  25. try{
  26. rs.close();
  27. }catch(SQLException e){
  28. e.printStackTrace();
  29. }
  30. }
  31. //如果pstmt不空,关闭pstmt
  32. if(pstmt != null){
  33. try {
  34. pstmt.close();
  35. } catch (SQLException e){
  36. e.printStackTrace();
  37. }
  38. }
  39. //如果conn不空,关闭conn
  40. if(conn != null){
  41. try {
  42. conn.close();
  43. } catch (SQLException e){
  44. e.printStackTrace();
  45. }
  46. }
  47. }
  48. }

4.5.2 乱码过滤器

过滤器类

  1. package com.untils;
  2. import java.io.IOException;
  3. import javax.servlet.Filter;
  4. import javax.servlet.FilterChain;
  5. import javax.servlet.FilterConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.ServletRequest;
  8. import javax.servlet.ServletResponse;
  9. public class CharactorFilter implements Filter {
  10. //继承Filter类
  11. //字符编码
  12. String encoding=null;
  13. public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
  14. if(encoding!=null){
  15. //设置request字符编码
  16. request.setCharacterEncoding(encoding);
  17. //设置response字符编码
  18. response.setContentType("text/html;charset="+encoding);
  19. }
  20. //传递给下一个过滤器
  21. chain.doFilter(request, response);
  22. }
  23. public void init(FilterConfig filterConfig) throws ServletException {
  24. //获取初始化参数
  25. encoding=filterConfig.getInitParameter("encoding");
  26. }
  27. public void destroy() {
  28. encoding=null;
  29. }
  30. }

过滤器配置(在web.xml文件中进行过滤器的配置)

  1. <filter>
  2. <!--过滤器名称 -->
  3. <filter-name>CharactorFilter</filter-name>
  4. <!--过滤器的完整类名 -->
  5. <filter-class>cn.com.Filter.CharactorFilter</filter-class>
  6. <!--初始化参数 -->
  7. <init-param>
  8. <!--参数名称 -->
  9. <param-name>encoding</param-name>
  10. <!--参数值 -->
  11. <param-value>utf-8</param-value>
  12. </init-param>
  13. </filter>
  14. <!--过滤器映射 -->
  15. <filter-mapping>
  16. <!--过滤器名称 -->
  17. <filter-name>CharactorFilter</filter-name>
  18. <!--URL映射,给所有页面处理乱码 -->
  19. <url-pattern>/*</url-pattern>
  20. </filter-mapping>

4.5.3 404、500异常处理

拦截异常配置

  1. <!-- 配置404与500错误处理-->
  2. <error-page>
  3. <error-code>404</error-code>
  4. <location>/404.htm</location>
  5. </error-page>
  6. <error-page>
  7. <error-code>500</error-code>
  8. <location>/500.htm</location>
  9. </error-page>

异常拦截跳转页面

  • 如果出现404错误,跳转至404.htm

  • 如果出现500错误,跳转至500.htm

5.系统测试

5.1 测试环境

  • 测试环境:windows 7操作系统

  • 浏览器:Google Chrome

  • 服务器:tomcat6.0

5.2 测试步骤

  • 在MyEclipse开发工具中,将系统打包成wz.war的文件

  • 将wz.war文件复制到tomcat中webapps下

  • 启动tomcat

  • 系统访问地址:http://localhost:8080/wz/admin/index.jsp

  • 用户名:admin,密码:1234。

5.3 测试结果

5.3.1 用户登录测试

在后台登录界面,需输入用户名和密码,如图6所示。

如果输入的用户名和密码不匹配,则提示输入错误,如图7所示。

输入正确的则进入后台信息的管理界面,如图8所示。

5.3.2 材料租赁测试

通过客户列表页进入材料租赁页面选择现有才有进行租赁,如图9所示。

将租赁材料录入后,点击提交按钮,出现租赁成功界面提示,如图10所示。

在租赁管理界面中,可查看正在租用材料的信息,如图11所示。

可对正在租用的材料进行归还,成功则出现提示,如图12所示。

5.3.3 管理员退出

管理员点击安全退出按钮,提示“您确定要退出!”,如图13所示。

退出则回到最初的登录界面,如图14所示。

参考文献

[1] 飞思科技产品开发中心著.JSP数据库开发实例精粹[M].北京:电子工业出版社,2005.1.

[2] [美]Hans Bergsten著,林琪等译.JSP设计[M].北京:中国电力出版社,2004.12.

[3] 飞思科技产品开发中心著.JSP应用开发详解[M].北京:电子工业出版社,2002.1

[4] Bruce W.Perry.Java Servlet & JSP Cookbook[M].O’Reilly,2004.1

[5] 林上杰,林康司著.JSP2.0技术手册[M].北京:电子工业出版社,2004.5.

[6] 张新曼.精通JSP-WEB开发技术与典型应用[M].北京:人民邮电出版社, 2007. 98-101

[7] 陈文兰.基于SSH 集成架构的进销存管理系统的设计[J].农业网络信息.

[8] 邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社.

[9] 朱涛江.SqlServer权威指南[M].中国电力出版社.2003.

[10] 郝玉龙.JavaEE编程技术[M].北京:北京交通大学出版社.

[11] 孟伟,李茜,曾波.电子商务平台建设与管理实验教程[M].重庆大学出版社.2009.1

[12] (美)Bruce Eckel著,陈昊鹏译.Java编程思想(第三版)[M].北京:机械工业出版社,2007.6

[13] 李建中,王珊.《数据库系统原理(第2版)》电子工业出版社.2004.9

[14] 张长富,黄中敏.JavaScript动态网页编程实例手册[M].北京:海洋出版社,2005:196-239

[15] 艾灵仙.高校系级网站构建平台的设计与实现[J].科技信息-2008年16期

上传的附件 cloud_download 基于Java的恒鑫物资租赁系统的设计与实现.zip ( 8.39mb, 2次下载 )
error_outline 下载需要13点积分

发送私信

18
文章数
0
评论数
最近文章
eject