J2EE课程设计报告_第1页
J2EE课程设计报告_第2页
J2EE课程设计报告_第3页
J2EE课程设计报告_第4页
J2EE课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

J2EE 课程设计课程设计 基于 MVC 设计模式的图书管理系统 专业:计算机科学与技术 班级: 姓名: 学号: 目 录 引引 言言 -2 1 系统概述系统概述-4 1.1 系统功能 -4 1.2 系统特点 -4 1.3 开发运行环境 -4 1.4 可行性分析 -5 1.4.1技术可行性-5 1.4.2经济可行性-6 1.4.3操作可行性-6 1.4.4社会效益可行性-6 2 技术选择技术选择-7 2.1 数据库技术 -7 2.2 JAVA 简介-7 2.3 MVC 概述 -8 2.4 STRUTS概述-9 3 系统总体设计系统总体设计 -11 3.1 项目规划-11 3.2 系统功能结构-12 4 系统详细设计系统详细设计 -13 4.1 数据库设计-13 4.2 数据库概念结构设计-13 4.3 数据库物理结构设计-13 5 系统功能具体实现系统功能具体实现 -15 5.1 数据库连接-15 5.2 用户管理模块的实现-16 5.2.1功能说明-16 5.2.2类、方法设计-16 5.3 图书管理模块的实现-17 5.3.1功能说明-17 5.3.2类、方法设计-17 5.4 图书查询模块的实现-18 5.4.1功能说明-18 5.4.2类、方法设计-19 结结 论论-20 摘 要 本系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护 以及前端应用程序的开发两个方面。本文对后台数据库设计采用 MySQL 语 言开发,要求建立数据的一致性和完整性,并对此数据库技术进行了较深入 的学习和应用;而对前端应用程序的设计则要求应用程序功能的完备,易用 等的特点,采用当今最流行的也是最有前途的面向对象语言 Java 开发,严格 遵循 MVC 设计模式。 本系统界面设计友好、美观,数据存储安全、可靠,操作简单、不受平 台约束,而且采用 B/S 结构,只需装有 IE 浏览器就可运行,十分节省资源。 在管理上做到数据的信息化、快速化和智能化。稳定的系统性能,给用户和 管理员时刻带来流畅舒适的体验,在信息化日益普及的今天,中小型图书馆 中必备的管理工具。 本系统首先介绍的是开发环境及所用到的基础知识。主要完成对图书馆 管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据 库结构和应用程序。最后介绍了图书馆的馆藏资源数字化,管理和服务计算 机化和网络化。 关键词: 图书管理; MySQL 数据库; Java; MVC 设计模式 1 引 言 图书作为一种信息资源,用户阅读的资料繁多,包含很多的信息数据 的管理,现今,有很多的图书管理都是手工的,尚未使用计算机进行管理。 根据调查得知,他们以前对图书管理的主要方式是基于文本、表格等纸介 质的手工处理,对于图书信息和借出书情况(如书籍信息、读者信息、借 出的书的数量等)的统计和核实等往往采用对书号的人工检查进行,对读 者的权限等用人工计算、手抄进行。数据信息处理工作量大,容易出错; 由于数据繁多,容易丢失,且不易查找。总的来说,缺乏规范的系统管理 手段。尽管有的商店、企业有计算机,但是尚未用于管理,没有发挥它的 效力,资源闲置比较突出,这就是图书管理系统的开发的基本环境 1。 由于图书管理在数据处理上是手工操作,工作量大,出错率高,出错 后不易更改。图书管理采取手工方式对图书情况进行人工管理,由于信息 比较多,图书信息的管理工作混乱而又复杂,一般借阅情况是记录在借书 证上,图书的数目和内容记录在文件中,管理员也只是当时对它比较清楚, 时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查 询费时、费力,如要对很长时间以前的图书进行更改就更加困难了。 基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作 规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和 准确性,能够及时、准确、有效的查询和修改图书情况。随着网络化学校管 理区域的发展,学校的建设管理在我国得到越来越迅猛的发展,在读者管理 制度上便有更高的要求,如何制定一套能够适合大多数图书管理的应用平台 是现在读者管理人员亟待解决的问题,本课题研究从实际需求情况出发,根 2 据院校现有的硬件设施,改变以往固定的管理模式,做到跟读者无距离的交 流、登记,为他们提供更为方便、直接的服务,对院校的管理工作进行了科 学、规范的管理,调动读者管理以及工作人员的积极性,提高他们的工作效 率,对读者的服务和智能化管理工作是一个推动。而调动全民工作积极性, 也便于领导实施监督管理,提高图书管理工作的业务素质。同时也可以加强 与读者的交流,便于读者对院校的硬件设施以及环境做更详细的了解,实现 无距离接触,无距离登记,真正建设成适应新形势下要求的图书信息管理系 统,为院校读者的管理系统带来不可估量的利润价值。 图书管理系统是典型的信息管理系统 ,其开发主要包括后台数据库的 建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据 一致性和完整性强,数据安全性好的库;而对于后者则要求应用程序功能 完备,易使用等特点。 经过分析如此情况,我们使用 SUN 公司的 JAVA 作为前台开发语言,它是 一种跨平台、适合于分布式计算环境的面向对象编程语言,以 MYSQL 作为 后台数据库。这次我的毕业设计的课题是“基于 MVC 设计模式的图书管理系 统”,目的是对学校图书信息进行全面的规划与管理,帮助学校做到: 完善体系管理 加强流程控制 实现量化管理,过渡到以读者为本的管理 科学管理读者的信息,优化分类,全面读者的情况 科学管理图书的各种信息,优化分类,使读者对图书信息明确化 3 1 系统概述 1.1 系统功能 本图书馆管理信息中信息处理总量大,种类繁多,手段落后的现状。 所涉及的处理内容包括:开发一个能够及时处理图书信息更新的管理系统; 开发一个为广大读者提供信息服务的信息查询系统,功能包括图书查询、 增加和删除等;开发一个系统信息管理系统,进行相关 用户的增加、权 限的设置等。 本图书馆信息管理的问题,目标是使图书馆信息管理系统在管理上也 能做到数据的信息化、快速化和智能化。在每一模块中,必须做到良好的 界面,并尽量做到在单表或多表中根据单一或复合条件进行查询及修改等 功能,能够对输入的数据做智能、快速处理。 我做的这个图书馆管理系统主要包括:图书管理、 用户管理、图书 查询等模块。 1.2 系统特点 本系统适合于各种中小型图书馆,可以对图书馆中各种信息或者资源进 行全方位多角度的管理。本系统界面友好、操作简单、不受平台约束,而且 采用 B/S 结构,只需装有 IE 浏览器就可运行,十分节省资源。 数据存储安全、可靠。查询功能很强大,保证了数据查询的灵活性。为 管理员提供灵活、方便的权限设置功能,明确了整个系统的管理分工。本系 统还采用人机对话的操作方式,方便管理员的日常操作。 1.3 开发运行环境 硬件平台: 4 CPU:P41.8GHz 以上; 内存:512MB 以上; 磁盘空间:1G 以上。 软件平台: 操作系统:Windows 2000/XP/Vista; 开发语言:Java; 开发工具:MyEclipse 6.0; 数据库:MySQL 5.1; 服务器:Tomcat 6.0 或者以上版本; 浏览器:IE6.0 及以上版本; 分辨率:最佳效果 1024 像素*768 像素。 1.4 可行性分析 开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此, 在接受项目之前必须根据客户可能提供的时间和资源条件进行可行性研究。 它可以避免人力、物力和财力上的浪费。可行性研究与风险分析在许多方面 是相互关联的。项目风险越大,开发高质量软件的可行性越小。 系统可行性分析包括:技术的可行性、经济可行性、操作可行性和社会 效益可行性从这几个方面论述。 1.4.1 技术可行性 本系统采用了 MyEclipse 开发工具和 MySQL 数据库进行开发,采用 java 作为开发语言,来实现安全的图书管理系统,并且降低开发难度。页面 使用 JSP 作为表示层,并使用 JavaScript 来进行表单验证。为了使页面更加 5 友好、流畅,还结合了 Struts 标签和 CSS。在页面的使用技巧上,本程序采 用了动态包含的方式,使得页面之间可以动态同步的显示。以及 Apache Tomcat 服务器的简易安装和稳定的运行对于系统的构建、运行和维护都可以 轻松地完成,所以技术上是可行的5。 1.4.2 经济可行性 在提出开发这个管理系统前,一方面是锻炼自已的能力,另一方面是了 解当今比较流行的管理系统的知识,本系统具有针对性,可以有效地减少资 金的投入,本系统所需运行环境都是网上免费开源的,只需下载安装即可使 用没有额外的一些支出,而且后期维护阶段也不需要太多的花费,总体投入 比较小,所以经济上是可行的。 1.4.3 操作可行性 本系统界面友好、操作简单、不受平台约束,而且采用 B/S 结构,只需 装有 IE 浏览器就可运行,十分节省资源。本系统性能稳定,即使是机器配 置较低的老图书馆也可放心使用。所以能够给用户带来流畅舒适的体验,所 以操作上是可行的。 1.4.4 社会效益可行性 对个人的图书管理工作进行了科学、规范的管理,提高图书管理工作 的效率;同时也可以加强与读者的交流,便于读者对院校的硬件设施以及 环境做更详细的了解,实现无距离接触,无距离登记,真正建设成适应新 形势下要求的图书信息管理系统 ,所以社会效益上也是可行的。 6 2 技术选择 2.1 数据库技术 本系统选用 MySQL 数据库,因为 MySQL 是开放源代码的,而且其速 度、可靠性和适应性而备受关注。大多数人都认为在数据量不是十分庞大的 情况下,MySQL 是管理内容最好的选择。 MySQL 是一个高性能、多线程、多用户、建立在客户 服务器结构 上的关系数据库管理系统,通过在组成数据库的表中创建关系来更进一步 地处理数据,专门为了速度和稳定性而设计。在过去的几年中,它已经成 为线上和线下适合数据库驱动的应用程序最受欢迎的数据库管理系统之一。 MySQL 始终围绕三个基本原则而设计,它们是:性能、可靠性和容易 使用。严格按照这些准则产生了一个价格便宜而富有特色、适应标准而容 易扩展、速度快而效率高的 RDBMS,使 MySQL 成为开发者和管理者建立、 维护和配置复杂应用程序的完美工具。 MySQL 的特性: MySQL 性能显著地部分原因是它的允许多个并发数据库访问的完全多 线程体系结构,这个多线程体系结构式 MySQL 引擎的核心,允许多个客 户同时读取同一个数据库,并且提供了大量的性能增益。 MySQL 代码也 以模块化、多层次方式构建,为连接和索引这样复杂的任务提供了最小的 冗余和特殊的优化。 2.2 JAVA 简介 Java 是 Sun 公司推出的一种跨平台的程序设计语言。随着Java 7 Servlet 的推出,Java 在电子商务方面开始崭露头角, JSP(Java Server Page)技术的推出,更是让 Java 成为基于 Web 的应用程序的首选开发工 具,目前的 Java 技术已成为所有大型电 子商务项目的必然选择。 Java 非 常适合于企业网络和 Internet 环境,现在已成为 Internet 中最受欢迎、最 有影响的编程语言之一 4。Java 程序也可以获取网络上结点的图象、声音、 HTML 文档及文本等资源,并可以对获得的资源进行处理。 Java 有许多 值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结 构中立性、可移植性、高性能、多线程、动态性等 10。 2.3 MVC 概述 MVC(Model-View-Controller)即模型层-视图层-控制器层是 80 年代出 现的一种软件设计模式,它强制的把应用程序的输入、处理以及输出分开。 MVC 模式将应用程序分为 3 个核心部分:模型层、视图层和控制层,这 3 个部分负担不同的任务。 视图层 视图(View)是应用程序中用户界面相关的部分,视图向用户显示数据, 并能接收用户的输入数据,但它并不进行任何实际的业务处理。 模型层 模型(Model)是应用程序的主体部分。模型表示业务数据和业务逻辑, 一个模型可以为多个视图提供数据,提高了应用的可重用性。 控制器层 控制器(controller)工作就是根据用户请求,调用相应的模型组件处理请 求,然后调用相应的视图显示模型返回的数据。 8 MVC 处理过程 首先,控制层接受用户的请求并决定应该调用哪个模型来进行处理;其 次,模型根据用户请求进行相应的业务逻辑处理并返回数据;最后,控制层 调用相应的视图来格式化模型反回的数据并通过视图呈现给用户。 MVC 的优点 多个视图能共享一个模型;模型是自包含的 ;控制层提高了应用程序 的灵活性和可配置性。 2.4 Struts 概述 Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序 过程所起到的重要作用,Struts 为 Web 应用提供了通用的框架9,让开发人员 可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许 开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。 采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实 现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分 发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用8。总之, Struts 的出 现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效 率2。 Struts 架构一经推出,即受到 Java 开发群体的广泛重视,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具,精通 Struts 架构已经成为 Java Web 程序员必备的技能。 Struts 框架优点: 9 Struts 跟 Tomcat、Turbine 等诸多 Apache 项目一样,是开源软件,这是 它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts 的优点主要集中体现在两个方面:Taglib 和页面导航。Taglib 是 Struts 的标记 库,灵活动用,能大大提高开发效率。关于页面导航,我认为那将是今后的 一个发展方向,这样可以使系统的脉络更加清晰。 Struts 框架缺点: Taglib 是 Struts 的一大优势,但对于初学者而言,却需要一个持续学习 的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉 得它真的很棒6。 Struts 将 MVC 的 Controller 一分为三,在获得结构更加清晰的同时,也 增加了系统的复杂度。 Struts 从产生到现在还不到半年,但已逐步越来越多运 用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的 J2EE MVC 实现方式7。 10 3 系统总体设计 3.1 项目规划 根据个人日常图书管理工作的需求和管理流程,该系统实施后,应达 到以下目标。 界面设计友好、美观,数据存储安全、可靠;基本信息设置保证的图 书信息和用户信息的分类管理;实现了图书信息管理和用户信息管理;强 大的查询功能,保证数据查询的灵活性;实现对图书的全部数据信息管理; 提供增加的功能,保证系统应用的广泛性,并设置用户密码保证安全性; 系统最大限度地实现了易维护性和易操作性;提供灵活、方便的权限设置 功能,使整个系统的管理分工明确;采用人机对话的操作方式,方便管理 员的日常操作。 图书管理是基础性的管理工作。系统开发的总体任务是实现各种信息 的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基 础上完成。 图书管理系统是一个典型的数据库应用程序,由图书管理、用户管理、 图书查询等模块 组成。 用户管理: 在此区域可以输入用户名称、密码来登录本系统;用户添加。 图书管理: 主要实现增加新图书、删除图书、修改图书信息等功能。 图书查询: 主要实现查询全部图书、按条件查询图书等功能。 11 3.2 系统功能结构 图书管理系统的功能结构如图 1 所示。 图 1 系统功能结构图 图 书 馆 管 理 系 统 用户管理 用户添加 用户登录 增加图书 图书管理删除图书 修改图书信息 图书查询 按条件查询图书 查询全部 12 4 系统详细设计 4.1 数据库设计 设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的 以及将来可能增加的需求。数据库设计一般包括如下几个步骤: 数据库需要分析 数据库概念结构设计 数据库逻辑结构设计 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求 数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以 及数据处理的流程,为后而后具体设计打下基础。 4.2 数据库概念结构设计 根据各图书管理信息的总结与归纳,本系统中所包含的信息为:图书信 息、用户信息。可将这些信息抽象为下列系统所需要的数据项和数据结构: 用户信息表(编号,用户名称,密码,管理者标记) 图书信息表(书号,书名,出版社,出版时间,作者,图书价格) 4.3 数据库物理结构设计 根据数据库各表的信息和关联,可以设计出 2 张数据表,每个表格表示 在数据库中的一个表。 主要数据表的结构 用户信息表(manager) 主要用来保存用户信息。该表中的字段为编号,用户名称,密码,管理 13 者标记。其表结构如表 1 所示。 表 1 用户信息表 字段名称数据类型Null主/外键描述 useridVARCHAR(45)N主键编号 usernameVARCHAR(45)N否用户名称 passwordVARCHAR(45)N否密码 managerVARCHAR(45)N否管理者标记 图书信息表(bookmark) 主要用来保存图书信息。该表中的字段为:书号,书名,出版社,出版 时间,作者,图书价格等信息。其表结构如表 2 所示。 表 2 图书信息表 字段名称数据类型Null主/外键描述 bookname VARCHAR(30)N主键书名 bookid VARCHAR(70)Y否书号 press INT(10)unsigncdedY否出版社 booktime VARCHAR(30)Y否出版时间 author VARCHAR(30)Y否作者 bookprice VARCHAR(20)Y否图书价格 14 5 系统功能具体实现 5.1 数据库连接 数据库连接及操作类通常包括得到一个Connection对象的方法getConnection()、 关闭指定的结果集的方法closeResultSet ()、关闭指定的Statement的方法 closeStatement ()和关闭连接的方法closeConnection ()。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Process private static String url = jdbc:mysql:/localhost:3306/Information?useUnicode=true private static String user = root; private static String password = root; public static Connection getConnection() /得到一个Connection对象 Connection conn = null; try Class.forName(com.mysql.jdbc.Driver); conn = DriverManager.getConnection(url, user, password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e1) e1.printStackTrace(); return conn; public static void closeResultSet(ResultSet rs) /关闭指定的结果集 if (rs != null) try rs.close(); catch (SQLException e) public static void closeStatement(Statement stmt) /关闭指定的Statement if (stmt != null) try stmt.close(); catch (SQLException e) 15 public static void closeConnection(Connection conn) /关闭连接 if (conn != null) try conn.close(); catch (SQLException e) 5.2 用户管理模块的实现 5.2.1 功能说明 本模块有一个基本类 UserBean 功能:1、用户登录 2、用户添加 5.2.2 类、方法设计 实现该功能模块所涉及的重要类和方法: 编号类名类名功能 1UserBeanDao 层实体接口类,用户的基本类 2loginServlet用户登录 Servlet 3registerServlet用户添加 Servlet UserBean 类 属性名属性名数据类型属性说明 useridString用户编号 usernameString用户名称 passwordString密码 managerString管理员标记 返回值方法名功能参数说明 StringgetUserid返回用户编号无 voidsetUserid设置用户编号String StringgetUsername返回用户名称无 UserBeangetUsername返回某个编号对应的用户名String voidsetUsername设置用户名称String StringgetPassword返回密码无 voidsetPassword设置密码String StringgetManager返回管理员标记无 voidsetManager设置管理员标记String 16 voidregister注册用户信息无 booleanisHere判断用户编号是否存在String loginServlet 返回值方法名方法名功能参数说明 voiddoGet 用户登录 HttpServletRequest request;HttpServletResponse response registerServlet 返回值方法名方法名功能参数说明 voiddoGet 注册新用户 HttpServletRequest request;HttpServletResponse response 5.3 图书管理模块的实现 5.3.1 功能说明 本模块有一个基本类 JavaBean 功能:1、增加图书 2、删除图书 3、修改图书信息 5.3.2 类、方法设计 实现该功能模块所涉及的重要类和方法: 编号类名类名功能 1JavaBeanDao 层实体接口类,图书的基本类 2insertServlet增加图书 Servlet 3deleteServlet删除图书 Servlet 4upDateServlet修改图书信息 Servlet JavaBean 类 属性名属性名数据类型属性说明 booknameString图书名称 bookidint图书编号 17 pressString出版社 booktimeString出版时间 authorString作者 bookpricedouble图书价格 返回值方法名功能参数说明 StringgetBookname返回图书名称无 voidsetBookname设置图书名称String intgetBookid返回图书编号无 voidsetBookid设置图书编号int StringgetPress返回出版社无 voidsetPress设置出版社String StringgetBooktime返回出版时间无 voidsetBooktime设置出版时间String StringgetAuthor返回作者无 voidsetAuthor设置作者String doublegetBookprice返回图书价格无 voidsetBookprice设置图书价格double voidinsert增加图书无 booleanisHere判断图书是否存在String intdelete删除图书String intupDate修改图书信息int IntegergetPageCount分页处理时,获取页数无 insertServlet 返回值方法名方法名功能参数说明 voiddoGet 向数据库中增加一本图书 HttpServletRequest request;HttpServletResponse response deleteServlet 返回值方法名方法名功能参数说明 voiddoGet 从数据库中删除一本图书 HttpServletRequest request;HttpServletResponse response upDateServlet 返回值方法名方法名功能参数说明 voiddoGet 修改数据库中一本图书的信息 HttpServletRequest request;HttpServletResponse response 18 5.4 图书查询模块的实现 5.4.1 功能说明 本模块有一个基本类 JavaBean 功能:1、查询全部图书 2、按编号查询图书 3、按书名查询图书 5.4.2 类、方法设计 实现该功能模块所涉及的重要类和方法: 编号类名类名功能 1JavaBeanDao 层实体接口类,图书的基本类 2FindServlet查询全部图书 Servlet 3OnlyFindServlet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论