基于J2EE的图书馆管理系统设计_第1页
基于J2EE的图书馆管理系统设计_第2页
基于J2EE的图书馆管理系统设计_第3页
基于J2EE的图书馆管理系统设计_第4页
基于J2EE的图书馆管理系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

基于J2EE的图书馆管理系统设计【摘 要】图书馆管理系统是典型的信息管理系统,其开发主要包括数据库的建立和维护以及应用程序的开发两个方面。对于数据库要求建立数据一致性、完整性和安全性好的数据库。而对于程序则要求程序功能简便,易于使用等特点。 本文结合开放式图书馆的要求,对MySQL数据库、JSP、JavaScript以及Struts 2框架应用程序设计,对数据库进行较为深入的应用,主要是对于图书管理系统的需求分析、数据库模式分析、功能模块设计分析,并设计了数据库结构和程序功能模块。本人所设计的图书管理系统完全可以满足学生、教师等借阅者、图书馆操作员以及高级管理员的需要。 文章详细介绍了图书馆管理系统的开发背景及其,软硬件环境,系统需求分析,系统总体设计,系统代码设计以及后期的测试与维护中的问题。设计部分列出了几个主要的程序框架图,并附带了一些主要的窗口和程序。【关键词】信息管理系统;浏览器服务器架构;MVC框架;JSP;Library management system【ABSTRACT】Library management system is a typical management information system, which mainly includes the establishment and maintenance of the background database and front-end application development aspects. The former required strong data consistency and integrity. Data with good security. For the latter application powerful, easy to use and so on.So oneself combine to open into the request of type library, apply program design to the MySQL databaseVisual Bdatabase technique carried on more thorough study and application, mainly completing the need to manage the system to book analysis, function mold piece divide the line, database mode analysis, and designed database structure from here and applied procedure.This paper introduces the background of library management system development, needs analysis, hardware and software environment, system design, system detailed design, system design, and post-test code and maintenance problems. Design section lists a few major procedural framework map, and with some of the major windows and programs.【Key Words】 Information Management System;B/S;MVC;JSP1.绪论1.1 开发背景及意义随着现阶段社会的发展,人们对知识的需求在不断地增长。在这种形势下,书籍已渐渐成为人们获取知识的主要途径,图书馆的存在可以满足人们对知识需求,因此,开发一套完善的图书馆管理系统是必不可少的,图书馆每天都要面对大量的读者和书籍的信息以及两者相互作用产生的借书、还书的信息。因此需要对读者、书籍资源、借书、还书的信息进行管理,及时准确记录各个环节中信息的变更。图书馆采取手工方式对图书借阅情况进行人工管理,数据处理的手工操作,工作量较大,出错率高,且出错后不易更改。对于这个问题,本人认为必须要建立一个图书管理系统,使图书管理工作具有规范化,系统化,程序化,提高对图书信息管理的速度以及准确性,能够及时、有效的查询和修改图书情况。1.2 课题的国内外研究现状 现今,国外尤其在西方发达国家由于科学技术和经济发达,图书馆行业受到很大程度的重视和发展,其图书馆在管理系统方面起步也比较早,已形成了相对完善的软件产品。而在中国,图书馆计算机管理始于1980年代初,我国的计算机技术正在快速发展,图书情报信息化建设迈上一个新的台阶。 现在很多图书馆正着手建立自己的图书馆管理系统,既将传统的图书资料转换为全文数据存放于网络。只要能接入互联网,无论何时何地,您都可以获取自己所要的资料。图书馆管理系统是图书馆信息化建设的一个主要发展趋势。1.3 课题的开发目标开发目标有如下7点:1 能够在系统上展示图书馆的各项信息。2 能够管理读者和图书的信息。3 能够给读者赋予几种不同级别的阅读权限,不同级别的读者可以一次借阅不同数目的图书。4 管理员通过Internet管理图书馆的各项信息,包括图书的借阅,读者图书证的办理。5 能够给不同的管理员设定不同的管理权限。6 能够对图书的借阅情况进行统计。7 要求系统运行安全稳定。1.4 课题的设计原则整个系统采用MVC模式完成。整个V层所有页面全部采用JSP完成,可以动态地显示页面中的各项数据库中查出的数据,并能做到动态的更新页面。其中也运用了JavaScript技术。比如系统中所有的菜单项都是采用的此技术,其可以使页面看起来更加简介,更加灵活,此外,由于验证部分也采用了这种技术,在一定程度上减轻了服务器端的压力。 在C 层运用了Struts框架技术,其接收所有表单请求,并把参数包装成对象后传递给Service层,好方便Service层调用相应的业务对象。M层是数据模型层,其包括了所有Service层和实体类,数据操作类及业务类,业务层即整个运用程序所能提供的所有服务,数据操作类为业务层服务,完成所有对数据库的操作,提供业务层完成其功能所需要的所有数据,实体类是对运用程序所涉及到的实体进行抽象后的对象,是整个程序的数据基础。1.5 论文的工作和安排本次设计的目标是,开发一个图书馆借阅管理系统。借助该系统,管理员可以很方便的管理图书馆的信息资料,规范化的管理读者用户,设定不同用户权限,并能通过互联网向读者提供在线查询服务,方便读者的使用。论文设计和实现了图书管理系统,可以根据用户的不同权限,对图书馆系统的各种信息进行添加、删除、修改或查询等操作。论文分为五个部分:第一章即本章绪论,简述图书馆借阅管理系统这个课题的开发背景及意义。第二章开发工具及运行环境,本系统使用Myeclipse Tomcat MySQL等工具,在Windows下,装有JDK运行环境即可运行。第三章为系统需求分析,本章中明确了系统需要实现的功能,分析了系统的用例,并介绍根据系统的需求选择的开发工具和技术的概况。第四章是总体设计,详细描述了本系统中数据库的设计情况,并给出了系统总体界面的设计方案,同时提供了个主要界面运行的参考图片,以更直观了解系统的实现情况。 第五章为程序设计与编码各主要功能模块的实现方法和部分关键代码,。最后为结束语,为此次毕业设计做一个总结,总结所获得的经验和体会。2.开发工具及运行环境2.1 软件环境?Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,MVC模式由三部分组成。其中M代表模型Model,是应用对象,V代表视图View,是页面上的显示,C代表控制器Controller,是处理用户的请求和业务方法。MVC模式能够很好地帮助java 开发者利用J2EE开发Web应用。Struts 是一个面向对象设计,将MVC模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Struts跟Tomcat等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。MySQL是一个关系型数据库管理系统,是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。由于其体积小、速度快,一般中小型网站的开发都选择 MySQL 作为数据库。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱,成为目前比较流行的Web 应用服务器。2.2 软件环境的安装和配置软件安装都很简单,其中MyEclipse、JDK和MySQL的安装软件是可运行程序。只需直接安装即可。Tomcat的安装文件是压缩软件包,只需把压缩文件解压到本地磁盘即可,安装好后需在操作系统中设置JDK以及Tomcat的环境变量。3.系统需求分析3.1基础信息维护 “基础信息维护”是对图书馆的基础信息、书籍信息以及常用词库等项目进行初始化设置,这些设置一般是不轻易改动,包含的功能模块如图3-1所示。图书馆名称图书馆负责人图书馆简介说明证件有效期超期罚款金额办证费用书架编号书架名称高级管理员图书馆操作员普通用户图3-1基础信息维护功能模块3.2 读者管理“读者管理“用于管理读者相关的信息,包括的功能模块如图3-2所示。图3-2 读者管理功能模块3.3图书管理 图书管理”用于管理图书相关的信息,包含的功能模块如图3-3所示。图3-3 图书管理功能模块3.4图书流通管理图书流通管理用于管理图书流通环节相关的操作,包含如图3-4所示的功能模块。图3-4 图书流通管理功能模块3.5统计分析管理统计分析管理为图书馆管理人员的分析决策提供依据,包含的功能模块如图3-5所示。图3-5 统计分析功能模块3.6 用例图管理员用户用例图:如下图所示图3-6 超级管理员用例图图3-7 普通管理员用例图3.7 业务流程系统流程图如图3-8所示。 图3-8 系统流程4.总体设计4.1总体架构系统功能实现设计架构(如图4-1) 图4-1 系统架构图4.2系统功能模块设计需要强调的是,由于用户登录和权限管理的功能各个系统实现的方法是一致的,详细介绍的功能模块如图4-2所示。图4-2详细介绍的功能模块4.3数据库设计数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。图书馆管理系统,顾名思义是对图书馆的管理而设计的一个应用程序。所以他需要收集大量的数据信息。对该设计的需求分析可以得出一下数据信息:首先,数据库中要有图书、读者的类型信息,图书、读者的相关信息,还要有读者借阅、归还图书的信息记录,以及管理员的信息等。具体的表信息如下:表名称数据表用途tb_bookinfo图书信息记录图书的基本信息tb_bookcase图书书架 记录并保存书架号等特征tb_purview 用户权限信息记录保存用户权限信息tb_borrow图书借阅记录对图书借阅信息的记录tb_giveback图书归还记录对图书归还信息的记录tb_publishing出版社信息记录并保存出版社信息tb_manager管理员信息记录并保存管理员信息tb_parameter参数信息记录并保存相关参数tb_booktype图书类型记录并保存图书类型信息tb_library图书馆基本信息记录并保存图书馆基本信息表4.1图书管理系统数据表清单因为整个系统涉及的实体和属性较多,限于篇幅不能也没有必要一一列举。图4-3为图书馆管理系统关键实体的E-R 图。其他实体与基本信息表间的对应关系都是类似的。图4-3系统E-R图4.4系统类图设计图书与图书类型图书书架之间的类图如图4-4所示:图4-4图书类图读者,类型,管理员之间的类图关系如图4-5所示:图4-5读者类图4.5登录界面设计登录界面是系统与用户的主要交互界面,其设计的好坏直接影响系统的性能,这里力求达到界面友好、信息直观和操作方便。本程序运行后的效果如图4-6所示。首先是登陆页面。图4-6登录页面登陆后显示的是主页,主页显示图书的借阅排行榜。如图4-7所示,其显示图书的详细信息,点击窗体下方的more菜单选项会显示所有的图书借阅情况,方便管理员了解图书的详细借阅情况。图4-7首页选择图书馆信息菜单,可以设置图书馆的相关信息,如图4-8所示图4-8图书馆信息设置页面选择管理员设置菜单可以添加管理员并修改管理员的权限,建立拥有不同等级权限的管理员,以满足现实的需要,也可以删除某些管理员的身份,是操作更人性化,合理化。如图4-9所示图4-9管理员设置页面选择参数设置可以设置办证费与有效期限,只有办理证件后才可以在本图书馆借阅,续借,归还图书。如图4-10所示。图4-10参数设置页面选择书架设置菜单可以设施书架的相关信息,着同样是不可缺少的,图书馆的藏书都需要分门别类的放在不同的书架上,这样才方便查找和整理图书,功能模块如图4-11所示,在这里可以对书架进行添加,修改,删除操作,灵活方便。图4-11书架设置页面选择读者管理读者类别设置菜单命令,进入读者类别设置功能窗体,在其中管理读者的类别信息,如图4-12所示。该表中显示的是读者的各个类别的类别名称,可以借阅的图书册数。如果要添加读者类别或修改读者的信息只需单击添加读者类型信息按钮或修改按钮即可。也可单击删除按钮,即可删除选中的单条记录。图4-12读者类型设置页面点击修改后,系统则会弹出修改读者类型的窗体,如图4-13所示弹出的页面包含读者类型现有的信息,此功能可以修改读者的类型名称与可借图书数量。图4-13修改读者类型设置页面点击添加,此功能可以添加新读者类型以及设置此读者可借数量。如图4-14所示。图4-14读者档案管理页面单击修改,可以从中更改读者的姓名、电话等详细信息如图4-15所示,。图4-15修改读者信息页面在设置好读者的信息之后,就可以开始对图书的类别和信息进行管理。选择图书管理图书类别设置菜单命令,就可以进入图书类别设置功能窗体,基本与读者类别设置窗体类似,这个设置的是书籍的类别信息。如下图4-16所示。图4-16图书类型设置页面单击添加图书类型信息以及设置图书可借天数,可以添加新的图书类型,如图4-17所示图4-17添加图书类型页面选择图书管理档案管理菜单,则可以进入设置和管理窗口,见图4-18,图4-18图书档案管理页面单击添加图书信息选项,就可以进入添加图书信息功能窗体,如图4-19所示,图4-19添加图书信息页面 完成了读者信息和图书信息的管理之后,就可以进行图书的借阅、归还等操作。可以选择图书借阅操作,进入图书借阅共能,如图4-20所示。图4-20图书借阅页面选择流通管理图书归还菜单命令,将显示如图4-21所示,完成归还图书的功能。图4-21图书归还页面当图书归还时间到时还可以进行续借操作,如图4-22所示,。图4-22图书续借页面选择系统查询图书档案查询菜单,会弹出图书馆所有藏书的信息,当我们还提供了一些查询条件以缩小管理员的现实需要,比如:书名,条形码,图书类型,出版社等。如图4-23所示:图4-23图书档案查询页面选择图书借阅查询功能可以查到你所需要的图书的信息,查看其是否已经归还以及借阅者的信息。如图4-24所示图4-24图书借阅查询页面若管理员的密码已经泄密可以修改密码,以确保图书馆信息的安全。效果如图4-25所示。图4-25更改口令页面5.系统代码设计5.1系统开发平台MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclips它主要由项目,工具项目和技术项目三个项目组成,具体包括四个部分组成MyEclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE支持插件开发。5.2关键问题代码实现添加管理员信息,具体代码实现如下:private ActionForward managerAdd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setName(managerForm.getName(); managerForm.setPwd(managerForm.getPwd();int ret = managerDAO.insert(managerForm); if (ret = 1) return mapping.findForward(managerAdd); / else if (ret = 2) request.setAttribute(error, 已存在此管理员信息,请勿重新添加!); / return mapping.findForward(error); else request.setAttribute(error, 添加管理员基本信息失败!); return mapping.findForward(error); 添加图书信息,具体实现代码为: private ActionForward bookAdd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) BookForm bookForm = (BookForm) form; bookForm.setBarcode(bookForm.getBarcode(); bookForm.setBookName(bookForm.getBookName(); bookForm.setTypeId(bookForm.getTypeId(); bookForm.setAuthor(bookForm.getAuthor(); bookForm.setTranslator(bookForm.getTranslator(); bookForm.setIsbn(bookForm.getIsbn(); bookForm.setPrice(bookForm.getPrice(); bookForm.setPage(bookForm.getPage(); bookForm.setBookcaseid(bookForm.getBookcaseid(); /获取系统日期 Date date1=new Date(); java.sql.Date date=new java.sql.Date(date1.getTime(); bookForm.setInTime(date.toString(); bookForm.setOperator(bookForm.getOperator(); int a=bookDAO.insert(bookForm); if(a=1) return mapping.findForward(bookAdd); else if(a=2) request.setAttribute(error,该图书信息已经添加!); return mapping.findForward(error); else request.setAttribute(error,图书信息添加失败!); return mapping.findForward(error); 控制层完全是由struts框架来完成的,在表述层提交参数后,struts会根据提交的路径把参数传递到相应的action中,框架会自动根据actionform来自动封装提交的信息;而action的返回值是ActionForward,框架会根据名字自动找到对应的路径,然后转到相应的页面。而想要实现上述功能,则需要配置文件的正确书写。此处只列举了部分的struts配置文件。 这是相对于操作读者类型和图书类型action的配置,此配置文件在初始化时会被存放在map集合中,然后struts框架会根据表述层提交的路径找到这两个action,进而对参数作出一系列的操作。数据模型层主要用来操作数据,从控制层接收对象,然后从数据库中找出需要的数据进行一系列的操作后,返回给控制层其所需要的数据,在DAO层,会在连接数据库后,根据需要对各个表进行增删改查等操作。例如,借阅图书时,要先获得系统时间,然后根据借阅者的权限,计算其取药归还的时间,然后把其写入数据库中,以供查询时使用,具体代码如下,这里只列举部分代码:public class BorrowDAO ConnDB conn = new ConnDB();public int insert() String sql = INSERT INTO tb_borrow (bookid) vlaues(1) ;int ret = conn.executeUpdate(sql);return ret;/*图书借阅*Public int insertBorrow(ReaderForm readerForm,BookForm bookForm,String operator)Date dateU=new Date();/获取系统日期java.sql.Date date=new java.sql.Date(dateU.getTime();String sql1=select t.days from tb_bookinfo b left join tb_booktype t on b.typeid=t.id where b.id= bookForm.getId() ;ResultSet rs=conn.executeQuery(sql1);int days=0; try if (rs.next() days = rs.getInt(1); catch (SQLException ex) String date_str=String.valueOf(date);/计算归还时间 String dd = date_str.substring(8,10); try if (rs.next() days = rs.getInt(1); catch (SQLException ex) String date_str=String.valueOf(date);/计算归还时间String dd = date_str.substring(8,10); String DD = date_str.substring(0,8) String.valueOf(Integer.parseInt(dd) days); java.sql.Date backTime= java.sql.Date.valueOf(DD);String sql =Insert into tb_borrow (readerid,bookid,borrowTime,backTime,operator) values( readerForm.getId() , bookForm.getId() , date , backTime , operator );int falg = conn.executeUpdate(sql);System.out.println(添加图书借阅信息的SQL: sql);conn.close(); return falg;/*图书归还*public int back(int id,String operator) String sql0=SELECT readerid,bookid FROM tb_borrow WHERE id= id ; ResultSet rs1=conn.executeQuery(sql0); int flag=0; try if (rs1.next() /获取系统日期 Date dateU = new Date(); java.sql.Date date = new java.sql.Date(dateU.getTime(); int readerid=rs1.getInt(1); int bookid=rs1.getInt(2); String sql1=INSERT INTO tb_giveback (readerid,bookid,backTime,operator) VALUES( readerid , bookid , date , operator ); int ret=conn.executeUpdate(sql1); if(ret=1) String sql2 = UPDATE tb_borrow SET ifback=1 where id= id ; flag = conn.executeUpdate(sql2); else flag=0; catch (Exception ex1) conn.close(); return flag; 这是操作与图书借阅相关的参数的类,它从数据库中查找,添加,“删除”与图书借阅相关的信息。数据模型层在数据库层之上,专事管理数据库的操作。结论本系统是一个面向小型图书管理系统,具有一定实用性的数据库信息管理系统。它主要完成对图书馆的管理,包括进入添加新书、完成借阅与归还、信息查询管理。本系统采用当前流行的面向对象的开发语言java来完成整个系统的设计,在数据库的设计上利用了MySQL的便利性和实用性。本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成。在管理方面,系统较好地实现了管理员注册和密码修改等各项功能。系统在设计过程中不可避免地遇到了各种各样的问题,由于我们缺乏团队合作精神,在系统开发过程中很多问题不能有效的解决,同时由于自身知识的缺乏导致有些功能实现不合理,给系统个的维护带来不便。由于时间关系,系统功能实现不够完善,使用不是很方便。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善,有很多不完美的地方,有许多功能没有实现,借阅信息管理还不完善,没有将删除的信息进行库存管理,不便于日后的查询。数据库内容不多。而且无法实现网络操作,细节之处不够完善。由于时间仓促,一些好的设计思想还没有实现,我将进一步完善本系统功能。本系统还有待需要进一步改正的地方,请提出宝贵意见。这次项目的开发是利用java程序设计语言基于J2EE平台,Struts框架以及jsp技术和MySQL数据库开发的一个基于web的小型图书馆管理系统,该系统是一个基于B/S多层结构的系统。通过本次毕业设计我学到了不少新的东西,并且从整体上对流程的概念有了一个更深层次的模型印象,对软件开发的整体设计思路和一些公认的方法有了全新的理解。同时也发现了大量的问题,有些在设计过程中已经解决,

温馨提示

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

评论

0/150

提交评论