图书管理系统毕业论文 .doc
长沙民政职业技术学院毕业实践报告题目:图书信息管理系统的设计与实现 实践报告毕业设计毕业专题 类型:指导老师: 王涛 系 别: 软件学院 班 级: 软开1235 学 号: 姓 名: 刘鹏 2015 年 4 月 30 日摘 要随着电脑、手机等信息工具的普及,人们能更加完善、快捷地处理信息数据。在图书馆的日常运作中,由于图书借阅和用户查询次数繁多,需要进行繁杂的信息数据管理。书籍是人类不可缺少的精神食粮,尤其重要。所以图书馆借阅信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等查询信息,这种查询管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机对图书资源信息进行查询管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书查询管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。为了能更高效、快捷、稳定地管理图书馆的数据信息,本文设计并实现了图书管理借阅。系统采用MyEclipse软件运用JAVA开发平台,使用SQL Server2008作为后台数据库系统。系统分为前后台2部分,前台主要实现了以下几个功能:查询图书,读者留言。后台以管理员方式登录实现以下几个功能:借还图书、图书管理、读者信息管理,公告栏消息发布等。读者只需要通过浏览器访问本系统,就可以轻松实现图书查询、留言等操作。同样,图书管理员也可以使用本系统方便快捷地完成图书馆的信息数据管理工作。关键词:Java SQL Server 图书管理系统ABSTRACTWith the information tools becoming so popular, such as computer and cell phone etc, people can handle the information data more perfectly and rapidly. In the daily library operation, as book-borrowed and the ones searched being so frequently, the library has to deal with a great many complicated data.Books are indispensable to mankind the ethos. So the library management system should be able to provide enough information and quick searching method. But since people use traditional artificial waymanagement books, periodicals, such information, the query management way has many shortcomings, for example: low efficiency, the bad secrecy, moreover the time is long, will produce the massive documents and the data, for the search, the renewal and the maintenance has brought about a lot of difficulties. Along with the science and technology unceasing enhancement, computer science is mature day after day, its formidable function hadprofoundly known for the people. As a part of computer application, using computer to library resources information query management, which themanual administration center. For example: retrieves, the search rapidly convenient, the reliability high, thereserves big, the secrecy good, the life is long, the cost is low. These merits can enormously enhance the efficiency of management of library inquires, the enterprises, schools, thestandardized management, scientific and the important the data management more efficiently, fast and reliably, the thesis designs and implements a library management system which is based on Web. On the Java platform, the system adopts the Browser/Server model, which takes SQL Server as a database server. The system mainly carry out the following functions: searching for borrowing and returning, book management, reader information management, reads messages, and the library bulletin. While the readers interview the system through the browser, they can easily search for a book or borrow and return a book etc. Simultaneously, the assistant is able to control the library information datum. In addition, the system is still added a searching function based WAP, by which the readers can search for a book more conveniently and rapidly, by means of wireless network. Such a function brings the readers a great deal convenience. Key words: Java SQL Server Library Management System目 录第一章 图书馆管理系统综述第一节 图书馆管理系统背景1第二节 课题研究意义1第二章图书馆管理系统开发环境简介第一节 MyEclipse简介2第二节 Microsoft SQL Server 2008简介2第三章 图书馆管理系统数据库设计第一节 子系统划分及系统模块设计3第二节 数据库的设计4第四章 图书馆管理系统详细设计及处理技术第一节 后台登陆功能模块7第二节 读者信息功能模块9第三节 书籍类型功能模块11第四节 图书信息功能模块12第五节 图书查询功能模块15第六节 图书借阅归还功能模块18第五章 图书馆管理系统系统测试21第六章 总结23参考文献23致谢23第一章 图书馆管理系统综述第一节 图书馆管理系统背景当今时代是飞速发展的信息时代,计算机与信息处理技术日渐成熟。随着Internet和计算机网络技术的蓬勃发展,Web技术得到了迅猛地发展。在科学技术高速发展的今天,信息技术已经渗透到社会发展的每一个领域,而计算机技术为工作提供了方便性、高效性、灵活性及安全性,尤其Web技术的高速发展将计算机的应用提升到另一个层次。而图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,利用计算机来管理复杂的信息,能够充分发挥计算机的优越性。书籍是人类不可缺少的精神食粮,尤其重要。所以图书馆借阅信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等查询信息,这种查询管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机对图书资源信息进行查询管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书查询管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。选用JAVA语言进行编程。更是1次编译,处处运行。系统分为前后台2部分,前台主要实现了以下几个功能:查询图书,读者留言、查看公告栏等。后台以管理员方式登录实现以下几个功能:借还图书、图书管理、读者信息管理,公告栏消息发布等。只需要通过软件访问本系统,就可以轻松实现图书查询等操作。同样,图书管理员也可以使用本系统方便快捷地完成图书馆的信息数据管理工作。第二节 课题研究意义目前有很多图书馆有图书管理系统,有的仅仅限于图书管理员使用,属于单机系统,对于Internet服务几乎没有,这样的图书管理系统根本没有发挥它的效力,资源闲置比较突出。基于这此问题,有必要建立一个图书管理系统有效的支持WEB的服务,以使图书管理工作规范化,系统化,程序化,提高信息处理的速度和准确性,并且能通过Internet能够及时、准确修改图书情况。本系统的设计最初主要的目的是有效的支持WEB访问使得资源利用最大化用户只需要通过浏览器就可以查阅到库中的图书,以及图书馆近期发布的最新消息,还可以留言的效果。总的来说系统总体上分为前台页面登陆和后台管理。后台的页面则集成了图书管理中所需的功能和录入新书到库,办公图书,借还手续,查询图书等等。平时图书管理人员的工作都是在后台中完成的。师生们可以通过管理员了解发布的最新公告信息;并可以查询自己感兴趣的图书,也可以给学校的图书管理人员申请图书借阅。相对应的后台是针对学校图书管理人员,后台的页面都加密,如果不正常登录是进入不了后台管理页面的,后台功能具体包括:发布首页公告,添加新书到库等等第二章 图书馆管理系统开发环境简介第一节MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。 第二节Microsoft SQL Server 2008简介SQL(Structured Query Language),结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。SQL Server 2008 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 SQL Server 2008 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2008 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作为一种电子文件柜:也就是说,它是收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作。 总之,数据库系统是一个计算机存储记录的系统,即,它是一个计算机系统,该系统的目标存储信息并支持用户检索和更新所需要的信息。下图是一个数据库系统的简图。图1 数据库系统简图本人设计的是一个关于图书馆图书管理的数据库系统,通过这个系统管理员可以简捷、方便的对图书记录查阅、增加、删除等功能,也可以通过这个系统对进行图书查询、借阅、归还等功能。本系统采用SQL Server 2008数据库,使用Java建立数据源的链接,并且生成图书管理的数据库应用程序从而实现数据库的管理功能。第三章 图书馆管理系统数据库设计第一节 子系统划分及系统模块设计数据库关系图构成这个图书管理系统是基于SQL SEVER设计的,然后通过向数据库发送相应的SQL指令,从而实现对图书的全面管理.对于数据库设计这一流程中,最重要的一步是对reader表、bookinfo表、borrow、booktype表四张表的设计以及它们之间的关系这是这个图书管理系统中的一个关键技术,以下就是数据库关联图所以根据本管理系统的要求我们在功能上将这个图书馆管理系统划分成了5个功能表格:读者模块表格,书籍信息表格,系统管理员表格,图书类型表格,借还手续表格,从而达到对图书的全面管理。第二节 数据库的设计考虑该系统的定位与现有技术力量,系统采用SQL SEVER作为系统的后台数据库开发环境,数据库命名标准与规范均采用英文单词标写,以便日后对其维护修改. 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行XP系统到win7系统都可以运行 .数据库逻辑设计:表2所示为管理员表(operator),记录了系统用户的角色和密码,判断是否允许其登录后台管理员的界面。表2 operator数据表列名数据类型长度id(PK)Int11nameVarchar12ageint6passwordVarchar10sexVarchar2表3所示为书籍类型信息表(bookType),记录了书籍名字,书籍可借阅天数,罚款多少,其具体作用就是实现书籍类型的添加功能。表3 bookType数据表列名数据类型长度id(PK)Int11typeNameVarchar20daysInt11fkfloat/表4所示为书籍借阅归还表(borrow),记录了借阅证号,借书开始日期,结束日期,书号。实现本系统核心功能-借书,还书的数据库应用。表4 borrow数据表列名数据类型长度id(PK)Int11bookISBNVarchar13operatorIDInt11readerISBNInt11borrowDatedatetime/backDatedatetime/表5所示为图书信息表(bookInfo),记录了图书书名,书号,图书类型,总量。其作用就是保存录入到库的图书资料,以便借阅和查询。表5 bookInfo数据表列名数据类型长度ISBN(PK)Int11typeIdIntr11booknameVarchar40writerVarchar20translatorVarchar20PublisherVarchar50datesmalldatetime/pricemoney/表6所示为用户信息表(reader),记录了读者最基本的信息,姓名,年龄,身份证,电话,押金,等一系列信息表6 reader数据表列名数据类型长度ISBN(PK)Int11nameVarchar10sexVarchar2ageint3identifyCardVarchar30telVarchar18keepmoneymoney/zjint10zyVarchar8bztimedatetime/第四章 图书馆管理系统详细设计及处理技术第一节 后台登陆功能模块。数据库代码部分:链接到数据库,从而可以读取调用到数据,对书籍进行操作public class Dao protected static String dbClassName = ".rverDriver"protected static String dbUrl = "jdbc:sqlserver:/localhost:1433;"+ "DatabaseName=db_library"protected static String dbUser = "sa"protected static String dbPwd = "123456"protected static String second = null;private static Connection conn = null;/创建数据库连接public Dao() try if (conn = null) me(dbClassName).newInstance();conn = nnection(dbUrl, dbUser, dbPwd);elsereturn; catch (Exception ee) ee.printStackTrace();private static ResultSet executeQuery(String sql) try if(conn=null)new Dao();return eStatement(_SCROLL_SENSITIVE,R_UPDATABLE).executeQuery(sql); catch (SQLException e) e.printStackTrace();return null; finally private static int executeUpdate(String sql) try if(conn=null)new Dao();return eStatement().executeUpdate(sql); catch (SQLException e) .println(e.getMessage();return -1; finally public static void close() try (); catch (SQLException e) e.printStackTrace();finallyconn = null;管理员登陆代码部分:图1:读者信息功能界面public static Operater check(String name, String password) int i = 0;Operater operater=new Operater();String sql = "select * from tb_operator where name='" + name+ "' and password='" + password + "'and admin=1"ResultSet rs = teQuery(sql);try while (rs.next() String names = rs.getString(1);(rs.getString("id");me(rs.getString("name");ade(rs.getString("admin");ssword(rs.getString("password");if (names != null) i = 1; catch (Exception e) e.printStackTrace();();return operater;第二节 读者信息功能模块图2:读者信息功能界面在后台管理中能自由的管理读者,对读者信息进行添加,存储读者的信息该功能的实现由以下实现:代码部分:/ 添加读者信息public static int InsertReader(String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN)int i=0;tryString sql="insert into tb_reader(name,sex,age,identityCard,date,maxNum,tel,keepMoney,zj,zy,bztime)values('"+name+"','"+sex+"','"+age+"','"+identityCard+"','"+date+"','"+maxNum+"','"+tel+"',"+keepMoney+",'"+zj+"','"+zy+"','"+bztime+"')".println(sql);i=teUpdate(sql);catch(Exception e)e.printStackTrace();();return i;/更新读者信息public static int UpdateReader(String id,String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN)int i=0;tryString sql="update tb_reader set name='"+name+"',sex='"+sex+"',age='"+age+"',identityCard='"+identityCard+"',date='"+date+"',maxNum='"+maxNum+"',tel='"+tel+"',keepMoney="+keepMoney+",zj='"+zj+"',zy='"+zy+"',bztime='"+bztime+"'where ISBN='"+ISBN+"'"i=teUpdate(sql);catch(Exception e)e.printStackTrace();();return i;/删除读者信息public static int DelReader(String ISBN)int i=0;tryString sql="delete from tb_reader where ISBN='"+ISBN+"'"/.println(sql);i=teUpdate(sql);catch(Exception e)e.printStackTrace();();return i;第三节 书籍类型功能模块书籍类型功能模块分为添加书籍类型模块和修改书籍类型模块。两个模块可以更好的对新进书籍更好的分门别类,强化管理图3:书籍类型界面代码部分:/图书类型添加public static int InsertBookType(String bookTypeName,String days,Double fk)int i=0;tryString sql="insert into tb_bookType(typeName,days,fk) values('"+bookTypeName+"','"+days+"',"+fk+")"i=teUpdate(sql);catch(Exception e)e.printStackTrace();return i;/图书类型修改public static int UpdatebookType(String id,String typeName,String days,String fk)int i=0;tryString sql="update tb_bookType set typeName='"+typeName+"',days='"+days+"',fk='"+fk+"' where id='"+id+"'"/.println(sql);i=teUpdate(sql);catch(Exception e)e.printStackTrace();();return i;第四节 图书信息功能模块 本功能涉及到图书管理员操作系统对新进的图书添加,把图书具体的信息录入到数据库中,达到对新进图书的管理。 图4: 新进图书添加界面 代码部分/添加图书public static int Insertbook(String ISBN,String typeId,String bookname,String writer,String translator,String publisher,Date date,Double price)int i=0;tryString sql="insert into tb_bookInfo(typeId,bookname,writer,translator,publisher,date,price) values('"+typeId+"','"+bookname+"','"+writer+"','"+translator+"','"+publisher+"','"+date+"',"+price+")"/.println(sql);i=teUpdate(sql);catch(Exception e).println(e.getMessage();();return i;图5: 新进图书添加界面 本功能涉及到图书管理员操作系统对新进的图书修改,及时更进图书的信息,达到对图书的进一步管理。代码部分public static int Updatebook(String ISBN,String typeId,String bookname,String writer,String translator,String publisher,Date date,Double price)int i=0;tryString sql="update tb_bookInfo set typeId='"+typeId+"',bookname='"+bookname+"',writer='"+writer+"',translator='"+translator+"',publisher='"+publisher+"',date='"+date+"',price="+price+" where ISBN='"+ISBN+"'"/.println(sql);i=teUpdate(sql);catch(Exception e)e.printStackTrace();();return i;第五节 图书查询功能模块在允许管理员对图书馆里面的书籍进行查询,返回内容包含书名,编号,分类和库存几个方面。总的来说该功能是本系统最重要的核心功能之一。图6:图书查询界面代码部分/图书名称模糊查询public static List selectbookmohu(String bookname)List list=new ArrayList();String sql="select * from tb_bookInfo where bookname like '%"+bookname+"%'".print(sql);ResultSet s=teQuery(sql);try while(s.next()BookInfo bookinfo=new BookInfo();BN(s.getString(1);peid(s.getString(2);okname(s.getString(3);iter(s.getString(4);anslator(s.getString(5);blisher(s.getString(6);te(s.getDate(7);ice(s.getDouble(8);(bookinfo); catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();return list; /图书作者名称模糊查询public static List selectbookmohuwriter(String writer)List list=new ArrayList();String sql="select * from tb_bookInfo where writer like '%"+writer+"%'".print(sql);ResultSet s=teQuery(sql);try while(s.next()BookInfo bookinfo=new BookInfo();BN(s.getString(1);peid(s.getString(2);okname(s.getString(3);iter(s.getString(4);anslator(s.getString(5);blisher(s.getString(6);te(s.getDate(7);ice(s.getDouble(8);(bookinfo); catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();