收藏 分享(赏)

学生宿舍管理系统(毕业设计_论文)介绍.doc

上传人:weiwoduzun 文档编号:2802293 上传时间:2018-09-27 格式:DOC 页数:48 大小:1.65MB
下载 相关 举报
学生宿舍管理系统(毕业设计_论文)介绍.doc_第1页
第1页 / 共48页
学生宿舍管理系统(毕业设计_论文)介绍.doc_第2页
第2页 / 共48页
学生宿舍管理系统(毕业设计_论文)介绍.doc_第3页
第3页 / 共48页
学生宿舍管理系统(毕业设计_论文)介绍.doc_第4页
第4页 / 共48页
学生宿舍管理系统(毕业设计_论文)介绍.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、XXXXXXXX 大 学系 统 设 计 说 明 书设计(论文)题目:学生宿舍管理系统系 别: 信息工程学院 专 业: 软件技术 姓 名: XXXXX 学 号: XXXXXXXXX 指导教师: XXXXX 完成时间: XXXX 年 XX 月 摘要摘要当今大学校园内的学生公寓,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的公寓信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个软件对学生公寓管理不仅节省了人力物力,而且对各种信息的把握和操作也更加方便。该学生宿舍管理系统主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库要求建立起数据一致

2、性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。管理人员需要做的就是将数据输入到系统的数据库中去。经过分析,本系统运用了 MySQL 为后台数据库,以 eclipse 为前端开发工具,系统实现了权限管理、学生信息管理、来访者管理、学生离校返校管理、卫生情况检查管理等必需的功能,其操作简单,界面友好,运行比较稳定,适用于大学院校大学生宿舍管理。关键词: 宿舍管理 、来访者管理、学生离校返校管理目录目录第 1 章 系统分析 11.1 系统开发的背景 11.2 系统需求分析 11.2.1 功能需求 11.2.2 性能需

3、求 21.3 可行性分析 .31.3.1 经济可行性 31.3.2 技术可行性 31.3.3 总结 31.4 系统的开发平台及开发工具 31.4.1 开发工具 Eclipse 31.4.2 数据库 MySQL 41.4.3 三层架构技术介绍 51.5 实现系统的平台 51.5.1 系统环境 51.5.2 后台数据库选择机配置 6第 2 章 系统总体设计 72.1 数据库设计 72.1.1 数据库设计概念 72.1.1 E-R 模型设计 72.2 数据库的逻辑设计 .102.3 模块设计 .122.2.1 用户管理模块 .132.2.2 学生信息管理模块 .132.2.3 报修管理模块 .152

4、.2.4 来访者登记模块 .152.2.4 学生进出校管理模块 .16第 3 章 系统详细设计 .173.1 子系统功能模块的实现 .173.1.1 包的创建 .173.1.2 java 架包的构建 193.1.3 公共模块设计 .193.1.3 数据库连接配置 .213.2 主窗体模块设计 .223.2.1 学生宿舍管理系统主界面 .223.2.2 学生信息管理模块 .233.2.3 报修管理管理模块 .283.2.4 来访者登记管理模块 .29目录I3.2.5 进校出校管理模块 .303.3 数据导出 Excel 和导入 Excel 数据 .33第 4 章 系统调试 .364.1 系统调试

5、的目的 .364.2 系统的调试 .36结束语 40谢词 41附录 42参考文献 43第一章 系统分析0第 1 章 系统分析1.1 系统开发的背景随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。 对于学校而言,学生宿舍管理是必不可少的组成部分。

6、目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。1.2 系统需求分析学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今天,它的出现已经成了一种必然,本文将从宿舍管理系统的历史和现状进行分析,以求证本系统的设计具有实际的意义,并得到它在未来

7、的发展,从而跟上时代的脚步,做出一个高质量的、安全性好的宿舍管理系统,使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。本系统采用 java 作为前台用户界面的开发语言,而后台的数据库采用 MySql。1.2.1 功能需求第一章 系统分析11. 基本功能需求主要实现的是学生宿舍管理系统,在设计该系统时,应尽可能的贴近用户,便于用户操作。系统在实现上

8、应该具有如下功能:(1) 系统要求用户输入正确的账号和密码才能进入系统。(2) 系统提供普通用户管理权限,能根据实施情况,增加或者删除多余房间,同时根据现有情况预估房间的需求量。(3) 系统应该提供学生的入住信息的录入,转换宿舍以及退宿舍的信息登记。(4) 系统应提供普通用户的信息查询功能(按多种方式查询)及统计功能。(5) 系统应提供信息维护功能,对学生信息修改,删除。(6) 系统应提供超级管理员增加、删除用户账户的功能。2. 功能模块宿舍管理系统主要实现的功能有:房间管理、宿舍管理、信息查询、信息维护等。功能模块图如图 1.1 所示:图 1.1 宿舍管理主要功能模块图1.2.2 性能需求1

9、. 系统安全性对于系统为方便学校管理学生宿舍而开发,便于统一管理,设一个超级用户,及几个普通用户(便于输入相关信息) 。在登录时,使用用户验证控件,来确认用户是否为合法用户,以保证信息安全。2. 数据库选择 由于用到的数据表格多,另外考虑到实际情况,学生基本信息的变动,还有员工第一章 系统分析2信息的多少的变化,我选用 MySql 作为数据库开发。1.3 可行性分析1.3.1 经济可行性主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小型的管理系统,从投入的人力,财力与物力来讲是非常之小的,只要一台电脑,一台

10、打印机,这个系统就可以搞起来,考虑到学校里有电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给宿舍里的管理提高一个层次。1.3.2 技术可行性技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等) 。此外,还要考虑开发人员的水平,做为计算机信息管理专业毕业的优等生,数据库设计方面对于我们应该还过得去,在宿舍里生活了两年,对这个管理模试应该比较的熟悉。1.3.3 总结通过以上两点的分析,编写或开发这个宿舍管理系统是可行的,只要这个系统能实现对学生数据的输入、修改、删除、打印、浏览与查询就可

11、以了。如果技术方面可行,浏览与查询方面的功能应该编写得强大一点,再好有条件组合的查询,可以实现按分类查询,也可以按专业、寝室号、籍贯等分类查询,以便学校方面管理人员可以很方便的查询想要的数据,以便进行统一管理,统一安排。1.4 系统的开发平台及开发工具本系统采用的开发平台是 Eclipse, 数据库是 MySQL,网站中主要运用分层的设计思想即三层架构技术(表示层-业务逻辑层-数据处理层) 。1.4.1 开发工具 EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附

12、带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。 第一章 系统分析3Eclipse 是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Work

13、bench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由 Eclipse 项目、Eclipse 工具项目和Eclipse 技术项目三个项目组成,具体包括四个部分组成Eclipse 、Platform、JDT、CDT 和 PDE.JDT 支持 Java 开发、CDT 支持 C 开发、PDE 用来支持插件开发

14、,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。1.4.2 数据库 MySQL1. MySQL 概述 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。目前MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 M

15、ySQL 作为网站数据库。2. MySQL 的特性(1) 使用 C 和 C+编写,并使用了多种编译器进行调试,保证源代码的可移植性 。(2) 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统 。(3) 为多种编程语言提供了 API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 等。 (4) 支持多线程,充分利用 CPU 资源 。(5) 优化的 SQL 查询算法,有效地提高查询速度 。(6) 既能够作为一个单

16、独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB 第一章 系统分析42312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。(7) 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径 。(8) 提供用于管理、检查、优化数据库操作的管理工具 。(9) 可以处理拥有上千万条记录的大型数据库。3. MySQL 的应用与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之处,如规模小、功能有限(MySQL 不支持视图(已经被列入 5.1 版的开发计

17、划) 、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。1.4.3 三层架构技术介绍三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI) 、业务逻辑层(BLL) 、数据访问层(DAL) 。区分层次的目的即为了“高内聚,低耦合”的思想。三层架构的优势:从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用

18、时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。另外三层架构还可以支持如下功能:Remote Access(远程访问资料),例如可透过 Internet 存取远程数据库;High Performance(提升运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,降低数据库主机的 Connection Load,并可藉由增加 App Server 处理众多的数据处理要求,这一点跟前面讲到的分布式计算提高运算能力是一个道理;Client

19、 端发出Request(工作要求)后,便可离线,交由 App Server 和 DataBase Server 共同把工作完成,减少 Client 端的等待时间;这个功能我觉得应用场合不是很多,自己感受也不是很深刻,从理论上是成立的。1.5 实现系统的平台1.5.1 系统环境1、系统软件环境第一章 系统分析5(1)服务端操作系统:Microsoft Windows7数据库系统:MySQL5.0(2)客户端操作系统:适用于各种平台开发工具:Eclipse,Navicat8.0开发语言:Java2、系统硬件环境(1)服务端:CPU:酷睿四核,内存 4G,硬盘 500G;(2)客户端:Pentium

20、 1.6GHz 以上 CPU,512MB 以上内存;(3)网络配置:百兆模式或以上。1.5.2 后台数据库选择机配置本系统决定用 MySQL 数据库,原因 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。在 2008 年 1 月 16 号被 Sun 公司收购。而 2009 年,SUN又被 Oracle 收购.目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。第一章 系统分析6第 2 章 系统总体设计2.1

21、 数据库设计数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。 数据库设计是建立数据库及应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。2.1.1 数据库设计概念人们把数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护 6 个阶段。概念结构设计就是对信息世界进

22、行建模,常用的概念模型是 E-R 模型,它是 P.P.S.Chen 于 1976 年提出来的。概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。从需求分析可以看出,本系统存在以下几个实体:学生实体:用于显示学生的属性,包括学生姓名、学生性别、学号、联、宿舍编号、入住日期等。宿管(即管理员)实体:用于显示宿管的属性,包括管理员编号、姓名、所管辖的楼栋等拜访者实体:用于拜访者的信息,包括拜访者编号、拜访者姓名、拜访

23、时间、离开时间等用户实体:登录用户的信息,包括用户名、密码和用户权限2.1.1 E-R 模型设计根据实体设计,可以得到各个实体和部分子系统 E-R 图。第一章 系统分析7学生实体图如图 2.1 所示。学生宿舍号院系班级性别姓名 管理员编号学号图 2.1 学生实体图宿管实体图如图 2.2 所示。宿管姓名 宿舍编号宿管 ID图 2.2 宿管实体图拜访者实体图如图 2.3 所示。拜访者姓名来访时间离开时间楼栋号拜访 ID图 2.3 拜访者实体图第一章 系统分析8用户实体图如图 2.4 所示。用户用户 ID用户名用户权限密码图 2.4 用户实体图用户实体图如图 2.5 所示。宿舍宿管编号宿舍编号图 2

24、.5 用户实体图宿舍管理系统全局 E-R 图如图 2.6 所示。第一章 系统分析9宿管 来访者宿舍学生管理 拜访入住N1NNM1图 2.6 宿舍管理系统 E-R 图2.2 数据库的逻辑设计数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作。设计的后半段则是数据库物理设计,包括选择数据库产品,确定数据库实体属性(字段) 、数据类型、长度、精度确定、DBMS 页面大小等。数据库是需要设计的,数据库设计反映在两方面:数据库逻辑设计:设计数据库的逻辑结构,与具体的 DBMS 无关,主要反映业务逻辑。数据库物理设计:设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS(如 O

25、racle、Sybase 等),并设计和实施数据库的存储结构、存取方式等。数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。为了使数据库设计的方法走向完备,数据库的规范化理论必须遵守。规范化理论为数据库逻辑设计提供了理论指导和工具,在减少了数据冗余的同时节约了存储空间,同时加快了增、删、改的速度。另外,在规范的数据库逻辑设计时,还应考虑适当地破坏规范规则,即反规范化设计,来降低索引、表的数目,降低连接操作的数目,从而加快查询速度。常用的反规范技术有增加冗余列、增加派生列、重新组表等。第一章 系统分析101. 学生信

26、息表存储了学生的基本信息。表 4.1 学生信息表字段名 数据类型 数据长度 是否为空 Key学号 Char 10 N P_K管理员编号 Char 10 N F_K姓名 Varchar 20 N院系 Varchar 20手机 Char 11班级 Varchar 20宿舍号 Char 10 N2. 管理员信息表存储了管理员的基本信息。表 4.2 管理员信息表字段名 数据类型 数据长度 是否为空 Key管理员编号 Char 10 N P_K续上表姓名 Varchar 15 N楼号 Char 10 N3. 报修管理表存储了报修基本情况信息。表 4.3 报修管理表字段名 数据类型 数据长度 是否为空 K

27、ey报修编号 Char 10 N P_K管理员编号 Char 10 N F_K宿舍号 Char 10 N报修时间 Datetime解决时间 Datetime4. 用户信息表存储了用户的类型。表 4.4 用户信息表字段名 数据类型 数据长度 是否为空 Key用户 ID Char 10 N P_K用户名 Varchar 20 N密码 Varchar 10 N5. 来访者登记表第一章 系统分析11存储了来访者登记的基本信息。表 4.5 来访者登记表字段名 数据类型 数据长度 是否为空 Key来访者登记编号 Char 10 N P_K管理员编号 Char 10 N F_K姓名 Varchar 20来访

28、日期 Datetime6. 学生出校登记表存储了学生离校登记的基本信息。表 4.6 学生离校登记表字段名 数据类型 数据长度 是否为空 Key离校编号 Char 10 N P_K学号 Char 10 N F_K姓名 Varchar 20出校时间日期 Datetime7. 学生返校登记表存储了学生进校登记的基本信息。表 4.7 学生进校登记表字段名 数据类型 数据长度 是否为空 Key进校编号 Char 10 N P_K学号 Char 10 N F_K姓名 Varchar 20返校时间日期 Datetime8. 宿舍表存储了宿舍的基本信息。表 4.8 宿舍信息表字段名 数据类型 数据长度 是否为

29、空 Key宿舍编号 Char 10 N P_K宿管编号 Char 10 N F_K2.3 模块设计宿舍管理系统作为公司内部信息平台的一部分,系统的用户信息来源于内部信息平台。用户在内部信息平台单点登录,即可直接访问宿舍管理系统。系统数据库与内部信息平台的后台数据库保持同步,当内部信息平台的用户信息修改后,即可同步信第一章 系统分析12息到本系统数据库。系统主要模块用例图如图 2.7 所示:图 2.7 系统主要模块 UML 用例图2.2.1 用户管理模块该模块主要是为管理员登录设计的,在用户登录后进入后台管理页面,如果是普通用户只可以查看一些信息不能修改密码和增加用户,注销用户可以重新登录。超级

30、用户可以修改普通用户密码,增加用户,这是超级用户和普通用户的区别。用户管理流程图如图 2.8 所示:管理员 后台登陆管理登陆后台管理(增删改查操作)NY图 2.8 用户管理流程图2.2.2 学生信息管理模块第一章 系统分析13该模块主要实现对学生信息管理,包括学生信息录入,修改,删除。模块图如图2.9 所示:学生信息管理学生信息修改学生信息录入 学生信息删除学生信息查询导成 Excel 表格生成报表根据查询条件查询图 2.9 学生信息管理模块学生信息的修改删除功能可修改班级号,宿舍号,删除完成学业的或退学的学生等等信息。学生信息修改功能如图 2.10 所示:图 2.10 学生信息修改流程学生信

31、息删除功能如图 2.11 所示:第一章 系统分析14图 2.11 学生信息删除流程2.2.3 报修管理模块该模块主要实现对报修信息管理,包括对报修宿舍信息的添加、查询和确认。详细描述:对报修宿舍的登记,记录主要信息宿舍号、宿舍损坏物品、报修时间、详情描述等等。学生可以查看报修情况何时被解决,员工解决保修情况时候需要及时登记解决时间。模块图如图 2.12 所示:对报修宿舍信息的查询图 2.12 来访者登记管理模块2.2.4 来访者登记模块该模块主要实现对来访者信息管理,主要是对来访者信息的登记,和学校对来访报修信息管理对保修宿舍解决时间的确认报修宿舍信息录入第一章 系统分析15者信息的查看。详情

32、描述:记录下列主要信息姓名、与被访者关系,证件名称、证件号码、来访时间、被拜访者的姓名。当住宿的被拜访的学生带有贵重物品出入宿舍楼时,需要出楼登记。等来访者信息记录错误时,可以修改相关信息。模块图如图 2.13 所示:对来访者信息的查询来访者信息的登记管理图 2.13 来访者登记管理模块2.2.4 学生进出校管理模块该模块主要实现对学生进校和离校两方面信息的管理。详情描述:主要包括学生离校时间、进校时间和携带东西的录入,查询学生的进校离校记录,学校需要时可以进行查看最近学生出校返校情况。模块图如图 2.14 所示:对学生进校、出校信息的查询学生进校、出校信息的登记管理图 2.14 学生进校离校

33、管理模块登记物品的出入来访者信息的录入信息的录入第 3 章 系统详细设计0第 3 章 系统详细设计3.1 子系统功能模块的实现3.1.1 包的创建本宿舍管理系统采用三层架构(即分层)的思想,分为三层:(1)数据访问层:顾名思义,就是用于专门跟进行交互。执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如System.Data.SqlClient 等,除数据层之外的任何地方都不应该出现这样的引用。需要创建以下包 dao 包、daoimpl 包,Dao 包中存放数据访问的接口,例如:执行数据的添加、删除、修改和显示接口等,DaoImpl 中存放对 Dao 中接口的实

34、现即实现从数据库读取数据例如实体学生 StuDao 中的接口public interface StuDao extends Dao, PageDao boolean insertMany(List list);List selectTotal(PageParamBean param);DefaultPieDataset readpiedate();DefaultCategoryDataset readlinedate();例如实体学生 StuDaoImpl 中向数据库发送的 SQL 语句:public static final String INSERT_TB_STU_SQL = “INSER

35、T INTO tb_stu (Sid,Mid,Sname,Sdepart,Sclass,dor) VALUES (?,?,?,?,?,?)“ ;public static final String DELETE_TB_STU_BY_ID_SQL = “DELETE FROM tb_stu WHERE Sid = ? “ ;public static final String UPDATE_TB_STU_SQL = “UPDATE tb_stu SET Mid=?, Sname=?,Sdepart=?,Sclass=?,dor=? WHERE Sid = ?“ ;public static fi

36、nal String SELECT_TB_STU_ALL_SQL = “SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu“ ;public static final String SELECT_TB_STU_BY_ID_SQL = “SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE Sid = ?“ ;public static final String SELECT_BASE_TB_STU_BY_COND_COUNT_SQL = “SELECT COUNT(*) FROM

37、tb_stu WHERE 1=1 “ ;public static final String SELECT_BASE_TB_STU_CURR_PAGE_SQL = “SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE 1=1“ ;public static final String SELECT_TB_STU_GROUP_BY_MID_SQL = “SELECT tb_manager.Mname ,count(*) FROM tb_stu left join tb_manager on tb_stu.mid=tb_manager.

38、mid group by tb_stu.mid“ ;第 3 章 系统详细设计1(2)业务逻辑层:对一些业务的实现,用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格 式是否正确及数据类型验证;用户的权限的合法性判断等等,通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。需要创建一下包 server 包、serverimpl 包,Service 包中存放需要实现的业务接口,例如:数据的删除,修改,查询,分页等业务的接口,ServicImple 中存放对Service 中接口中的实现,需要调用数

39、据访问层中 DaoImpl 的具体方法的返回值来获得数据。例如实体学生 StuService 中的接口:public interface StuService extends SuSheManageService PageResultBean selectCurrPage(PageParamBean param);boolean insert(Stu newstu);boolean update(Stu entity);boolean delete (Serializable id) ;boolean importExcel(String filePath);List selectTotal(

40、PageParamBean param);DefaultPieDataset readpiedate();DefaultCategoryDataset readlinedate();例如实体学生 StuServiceImpl 中的从 daoimpl 中获取数据的主要代码:private StuDao dao=new StuDaoImpl();(3)表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着只做与外观显示相关的,不属于他的工作不用做。这个项目创建了 view 包,存放数据显示的窗体。需要调用 serviceimpl 中的业务实现方法的返回值来获得数据

41、所谓的三层开发就是将系统的整个业务应用划分为表示层业务逻辑层数据访问层,这样有利于系统的开发、维护、部署和扩展。宿舍管理系统所创建的包如 3.1 所示:图 3.1 分层思想包的结构创建第 3 章 系统详细设计23.1.2 java 架包的构建在写宿舍管理系统时我们需要加一些我们项目中所需要的架包,通过选择“工程”“右键”build path” 命令即可进行添加。本系统程序中需要添加的选项和需要使用的对应 jar 包,如图 3.2 所示。图 3.2 项目需要构建的架包项目需要构建的架包的简单说明:1. mysal-connector-java-3.0.17-ga-bin,jar 是用于连接数据

42、MySql 的对应架包;2. Jcommon-1.0.21.jar 是用来显示关于应用程序信息的用户界面类,布局定制管理器,一个日期选择面板,序列化工具类,XML 解析器支持类.3. hamcrest-library-1.3RCO.jar 和 junit-4.8.1.jar 是用于单元调试所需要的架包4. jxl.jar 是用于导入导出 EXCEL 文件的架包5. jfrechart-1.0.jar 是用于把数据生成图文形式的架包3.1.3 公共模块设计在项目中创建了这样一个包sushemanage.util。这个包中存放工具类,因为这些代码第 3 章 系统详细设计3可以重复调用,避免代码的冗

43、余我们创建这些工具类。util包中有这些工具类如3.3所示:图 3.3 项目需要工具类1. DbUtil.java是数据库连接工具类。下面写数据库交互是具体写。2. ExcelUtil.java是将数据导入导出成Excel的工具类。将Excel中数据读入数据库主体代码:public List read(String filePath) /read 方法,需要传 String 类型的路径名作为参数将表中数据导出成到Excel中主体代码:public boolean write(List list,String targetfile) /write方法,需要传一个 list的集合和一个String

44、 类型的目标文件参数3. JfreeChatUtil。Java是生成统计柱状图、折线图、饼图的工具类生成饼图的主体代码:public static void createPie(String TITLE_EMPS_PER_DEPT,DefaultPieDataset dataset)/DefaultPieDataset dataset = new DefaultPieDataset();/ create a chart. 生成折线图的主体代码:public static void createLine(String TITLE_EMPS_PER_DEPT,DefaultCategoryData

45、set linedataset,String xName,String yName) 生成柱状图的主体代码:public static void createBar(String TITLE_EMPS_PER_DEPT,DefaultCategoryDataset linedataset,String xName,String yName)4. MD5Util.java是MD5加密技术的工具类。MD5加密主要代码:public static String md5(String pswd)try MessageDigest md=MessageDigest.getInstance(“MD5“);

46、byte byteArray=md.digest(pswd.getBytes();return ByteArrayToString(byteArray);第 3 章 系统详细设计4 catch (NoSuchAlgorithmException e) / TODO Auto-generated catch blocke.printStackTrace();return null;用这个技术后数据库用户登录的密码应是加密后的数据如图3.4所示:图 3.4 加密后的密码3.1.3 数据库连接配置数据库连接采用单例设计模式,单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特

47、殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。数据库连接主要代码:/* 使用单例 设计模式,实现 获得数据库连接,和数据连接关闭方法* 单例中 读取 配置文件只做一次,解析该jdbc.properties只做一次 注册加载数据库厂商提供的工具类 ,只做一次*/private DbUtil() / 读取jdbc.properties 文件try InputStream is = DbUtil.class.getClassLoader().getResourceA

48、sStream(“jdbc.properties“);/ properties 工具类 索引,内容Properties prop = new Properties();/ 读取jdbc.properties 文件prop.load(is);username = prop.getProperty(“username“);password = prop.getProperty(“password“);url = prop.getProperty(“url“);String driverClass = prop.getProperty(“driverClass“);Class.forName(dri

49、verClass);第 3 章 系统详细设计5 catch (Exception e) e.printStackTrace();这样数据库连接只要写一次,每一次从数据库中读取数据,知道连接这个数据库连接工具类DButil就可以了。数据库需要的连接、用户名、密码写在jdbc.properties文件中:url=jdbc:mysql:/localhost:3306/java54driverClass=com.mysql.jdbc.Driverusername=rootpassword=root3.2 主窗体模块设计3.2.1 学生宿舍管理系统主界面学生宿舍管理系统主界面如图 3.5 所示:图 3.5 宿舍管理系统主界面9. 功能模块说明:通过点击左边的树结构,来显示右边是子窗体。10. 设计思路:树状结构,常用于菜单,或是文件管理等等具有层次关系的内容。这样设计就可以很简单的用左边的树来控住右边各个功能的子窗体的显示。11. 主窗体通过左边的树来控制右边子窗体的显示主要代码:final JTree tree = new JTree();第 3 章 系统详细设计6tree.addMouseListener(new MouseAdapter()

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

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报