图书信息管理系统设计与实现.docx

上传人:b****0 文档编号:9972370 上传时间:2023-05-22 格式:DOCX 页数:23 大小:1.72MB
下载 相关 举报
图书信息管理系统设计与实现.docx_第1页
第1页 / 共23页
图书信息管理系统设计与实现.docx_第2页
第2页 / 共23页
图书信息管理系统设计与实现.docx_第3页
第3页 / 共23页
图书信息管理系统设计与实现.docx_第4页
第4页 / 共23页
图书信息管理系统设计与实现.docx_第5页
第5页 / 共23页
图书信息管理系统设计与实现.docx_第6页
第6页 / 共23页
图书信息管理系统设计与实现.docx_第7页
第7页 / 共23页
图书信息管理系统设计与实现.docx_第8页
第8页 / 共23页
图书信息管理系统设计与实现.docx_第9页
第9页 / 共23页
图书信息管理系统设计与实现.docx_第10页
第10页 / 共23页
图书信息管理系统设计与实现.docx_第11页
第11页 / 共23页
图书信息管理系统设计与实现.docx_第12页
第12页 / 共23页
图书信息管理系统设计与实现.docx_第13页
第13页 / 共23页
图书信息管理系统设计与实现.docx_第14页
第14页 / 共23页
图书信息管理系统设计与实现.docx_第15页
第15页 / 共23页
图书信息管理系统设计与实现.docx_第16页
第16页 / 共23页
图书信息管理系统设计与实现.docx_第17页
第17页 / 共23页
图书信息管理系统设计与实现.docx_第18页
第18页 / 共23页
图书信息管理系统设计与实现.docx_第19页
第19页 / 共23页
图书信息管理系统设计与实现.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书信息管理系统设计与实现.docx

《图书信息管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统设计与实现.docx(23页珍藏版)》请在冰点文库上搜索。

图书信息管理系统设计与实现.docx

图书信息管理系统设计与实现

图书信息管理系统设计与实现

摘要

 

在信息覆盖全球数字化的今天,网络已经成为人们工作和学习中非常重要的一部分,不断充实和改变着人们的生活。

比如个人可以方便的在网上查询一些信息,一些公司企业可以构建自己的局域网管理公司内部的事情,学校有校园网连接学校的每个部门。

图书信息管理系统(BMS)主要基于JSP内容开发的一个网上图书管理系统网站,相比传统的图书管理存在信息资料管理分散、安全性差、利用率低等缺陷,再者,这类信息本身存在着它的不规范性,本系统主要是为用户提供最为简单明了方便快捷的图书的基本信息管理和查询,系统模块包括作者管理、出版社管理、图书管理、系统用户管理等,实现了对作者、出版社、图书、和系统用户的增删改查功能[1]。

系统发布之后,管理员或读者就可以通过Web管理和访问数据库,这样设计既有利于读者方便地操作,也有利于管理员有效的管理。

纳入管理的图书的属性包括图书ISBN、书名、价格、出版社、出版年份、版本号、作者信息。

系统完成后运行快捷良好,实现了当初需要的各个模块的功能

本系统的开发工具是MyEclipse9.1、jdk6、tomcat7、log4j,后台数据库选的是MicrosoftSQLServer2000,编辑语言为JAVA[2]

关键词:

图书信息管理系统;JAVA;JSP;

 

Abstract

 

Intheinformationofglobalcoverageofdigitaltoday,thenetworkalreadybecamethepeopletoworkandstudysoimportantapartof,andconstantlyenrichandchangingpeople'slife.Forexample,individualscaneasilyintheInternetforsomeinformation,somecompaniescanbuildtheirownlocalareanetworkmanagementcompanyinternalthings,schoolcampusnetworkconnectingeachsectionoftheschool.

Bookinformationmanagementsystem(BMS)ismainlybasedonJScontenttodevelopanonlinelibrarymanagementsystemWebsite,comparedtothetraditionallibrarymanagementinformationmanagementdecentralization,poorsafety,lowutilizationratioofdefects,moreover,thiskindofinformationitselfexistsitisnotstandardized,thissystemismainlytoprovideuserswiththemostsimpleandconvenientbookofbasicinformationmanagementandthequery,systemmanagementmoduleincludesauthor,pressmanagement,librarymanagement,usermanagementsystem,toachieveauthor,publishingbooks,andusersofthesystem,theadditionsanddeletionstosearchfunctions[1].

Afterthereleaseoftheadministratororsystem,readerscanuseWebtomanageandaccessthedatabase,suchdesignnotonlyhelpsthereadertooperateconveniently,butalsoconducivetotheadministratoreffectivemanagement.

Intothemanagementoflibrarybooks,thepropertiesincludeISBN,price,press,publicationyear,version,authorinformation.

Afterthesystemisfinishedrunningfastandgood,realizeatthebeginningtoeachmodulefunction

ThesystemdevelopmenttoolisMyEclipse9.1,JDK67,Tomcat,log4j,backgrounddatabaseMicrosoftSQLServer2000isselected,editorfortheJAVAlanguage[2]

Keywords:

bookmanagementsystem;JAVA;JSP;

 

第一章引言

 

现今我们的生活已经离不开网络这个新时代产物,用于通信的通信网、用于看电视的有线电视网、以及强大的互联网,再者就是以后所要发展的物联网。

我们的生活中拥有各种网,学校也有校园网,这就是我们所要说的重点了,图书管管理系统,在每个图书馆都有各自不同的管理方式,其共有的特点多数仍处在手工阶段。

存在信息资料管理分散、安全性差、利用率低等缺陷,再者,这类信息本身存在着它的不规范性,单纯使用特定的软件进行管理也有一定难度,而且很难适应此类信息管理模式的变化比计划还快的特点,同时其他一些传统的图书管理系统也是繁琐复杂,不便于管理员快捷的查询和管理。

对此,基于网络技术的网络管理模式体现出强大的生命力,有人誉为是将改变用户网络管理方式的革命性网络管理解决方案。

通过我对我们学校图书馆管理系统的大概了解所以开发了本系统,可以实现简单的图书管理。

第二章系统分析与设计

2.1开发环境准备

Jdk1.6下载与安装[3]

Eclipse3.2.1下载与解压

MyEclipse5.0安装

Tomcat6.0下载与解压

MyEclipse中配置Tomcat

数据库SQLServer2000安装

数据库SQLServer2000Sp3补丁安装

2.2开发资料准备

HTML教程

JS参考手册–JavaScript相关

CSS参考手册

JSP/SERVLETAPI参考

JDK6API文档–JDBC以及JAVA中常用类[4]

JSTL参考手册

简要的需求分析描述

2.3系统概述

图书管理信息系统(BMS)主要提供图书的基本信息管理和查询,主要包括作者管理、出版社管理、图书管理、系统用户管理、图书查询等。

纳入管理的图书的属性包括图书ISBN、书名、价格、出版社、出版年份、版本号、图片、作者信息。

其中:

一本图书属于一个出版社,一个出版社可以有多本图书。

一本图书可以有多个作者,一个作者也可以出版多本图书[6]。

2.4模块划分

2.5模块功能描述

2.5.1系统登录页面

输入用户帐号和密码进行登录,未登录的用户不能操作其他页面。

有非空校验。

不能登录成功的在当前页面提示“用户名或密码有误”。

2.5.2作者管理

a)模块首页面

分页显示所有作者信息,每页显示8条。

可对每条记录进行修改和删除。

删除记录需要先经过用户确认,以防止误删除。

有约束存在则不能删除,给出错误信息。

可以通过输入名、姓增加作者信息。

增加时名和姓都需要有非空校验。

增加完成仍旧回到当前页面(或者提示增加成功,并可连接到当前页面)。

b)修改页面

修改时名和姓都需要有非空校验,修改完毕直接回到模块首页面。

2.5.3出版社管理

a)模块首页面

分页显示所有出版社信息,每页显示8条。

可对每条记录进行修改和删除。

删除记录需要先经过用户确认,以防止误删除。

有约束存在则不能删除,给出错误信息。

可以通过输入出版社名称增加新记录。

增加时要有非空校验。

增加完成仍旧回到当前页面(或者提示增加成功,并可连接到当前页面)。

b)修改页面

修改时名和姓都需要有非空校验,修改完毕直接回到模块首页面。

2.5.4图书管理

a)模块首页面

分页显示所有的图书信息,每页显示8条,可对每条记录进行修改和删除。

删除记录需要先经过用户确认,以以防止误删除。

删除图书需要同时删除该图书的作者信息。

显示的图书信息包括:

ISBN,书名,出版年份,版本号,出版社名称,价格。

对书名加链接,通过点书名可以弹出新窗口,显示图书所有信息(包括图书的所有作者信息)。

快速搜索功能:

可以对ISBN,书名组合进行模糊查找。

b)增加页面

ISBN唯一,用户所输入的ISBN重复需要有提示。

出版社用下拉框,作者用列表框,可以多选。

版本号、出版年份均为数字。

价格为浮点数。

c)修改页面

ISBN不能修改。

默认显示记录原信息。

通过提交后执行修改。

2.5.5用户管理

a)模块首页面

分页显示所有用户信息,每页显示8条。

可对每条记录进行修改和删除。

删除记录需要先经过用户确认,以防止误删除。

可以通过输入相关信息新记录。

增加时对帐号、姓名、性别、密码要有非空校验。

增加完成仍旧回到当前页面(或者提示增加成功,并可连接到当前页面)。

帐号必须唯一。

b)修改页面

如果帐号修改了,则帐号不能跟其他帐号相同。

非空校验同增加。

2.5.6图书查询

a)模块首页面

分页显示所有查询结果,每页显示8条。

显示的图书信息包括:

ISBN,书名,出版年份,版本号,出版社名称,价格。

对书名加链接,通过点书名可以弹出新窗口,显示图书所有信息(包括图书的所有作者信息)

查询条件包括:

价格范围、出版年份范围、书名(模糊匹配)、出版社、ISBN。

2.5.7系统退出

系统退出后回到登录页面。

2.6系统功能结构

第三章数据库分析与设计

3.1实体以及实体的属性分析

3.1.1实体分析

作者:

(作者ID、姓、名)

出版社:

(出版社ID、名称)

图书:

(ISBN、书名、版本号、出版年份、价格)

系统用户:

(用户ID、帐号、密码、姓名、注册日期)

3.1.2实体之间的关系

作者-图书:

多对多(M:

N)

出版社-图书:

一对多(1:

N)

3.1.3E-R图到关系模式的转换

一对一:

任意一端的主键加入到另一端作为外键

一对多:

一端的主键加入到多端作为外键

多对多:

形成一张关系表,将两端的主键分别加入该关系表,作为联合主键;联系的属性作为该关系表字段。

3.2数据库表设计

第四章系统实现

4.1系统开发技术

静态页面制作(html代码,frame应用,css应用)利用JDBC,比较简单的实现数据库存取操作(二层结构)分析二层结构带来的问题,改进该结构,引入数据访问层。

简单的数据访问层实现数据库存取操作简单的数据访问层带来的问题以及如何改进数据访问层设计:

公共的数据库连接类DbConnection、数据访问对象DAO的基类BaseDAO,Log4j的配置与应用,针对业务的数据访问对象开发,从AuthorDAO开始。

作者管理的数据访问层开发完毕,实现前台JSP层的开发,主要是CRUD操作。

增加简单的JS校验。

图书管理模块分析,业务层开发、涉及事务操作、多表操作。

图书管理JSP层开发[7],分析参数多的情况带来的问题,引入JavaBean来实现request参数的自动获取和设置。

增加JS校验实现基本的数据验证。

编写通用的分页对象PageUtil,应用该对象在图书列表中实现内存中分页,类似的,实现作者、出版社的分页。

为系统增加一张系统用户表,完成系统用户的CRUD。

Session用户登录以及登录验证的开发。

编写通用的登录验证,单独作为文件包含到需要验证才能访问的页面中。

为系统退出功能增加。

MVC思想简要介绍,利用Servlet作为控制器,el,jstl完成界面显示,基于MVC开发图书查询模块[5]。

Servlet中的过滤器,使用过滤器增强可维护性。

改进代码,将request编码交由过滤器处理,将登录校验交由过滤器处理。

 

4.2系统实现界面

登陆成功

登陆失败

图书查询

 

图书详细列表

 

图书添加

 

图书修改

 

图书删除

 

出版社查询

 

出版社添加

 

出版社修改

 

出版社删除

 

作者查询

 

作者添加

 

作者修改

 

作者删除

 

用户查询

 

用户添加

 

用户修改

 

用户删除

 

4.3系统代码实现

4.3.1密码修改

packagecom.books.db;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.util.List;

importcom.books.model.UserModel;

importmon.db.BaseDAO;

importmon.db.IParamBinding;

importmon.db.IRowMapper;

importmon.util.ParamUtil;

publicclassUserDAOextendsBaseDAO{

publicvoidupdate(finalUserModelmodel){

Stringsql="updatebookuserssetaccount=?

password=?

name=?

createTime=?

whereuserId=?

";

super.updateBySql(sql,newIParamBinding(){

@Override

publicvoidbindParam(PreparedStatementpstmt)throwsSQLException{

pstmt.setString(1,model.getAccount());

pstmt.setString(2,model.getPassword());

pstmt.setString(3,model.getName());

pstmt.setString(4,model.getCreateTime());

pstmt.setInt(5,model.getUserId());

}

});

}

classUserRowMapperimplementsIRowMapper{

@Override

publicObjectmappingRow(ResultSetrs)throwsSQLException{

UserModelmodel=newUserModel();

model.setAccount(rs.getString("account"));

model.setPassword(rs.getString("password"));

model.setName(rs.getString("name"));

//将date格式转换为String格式通过rs得到date然后转换成String类型的yyyy-MM-ddHH:

mm:

ss

StringcreateTime=ParamUtil.parseDateTime(rs.getTimestamp("createTime"),"yyyy-MM-ddHH:

mm:

ss");

model.setCreateTime(createTime);

model.setUserId(rs.getInt("userId"));

returnmodel;

}

}

}[8]

4.3.2图书查询

publicListqueryAll(){

Stringsql="selectt.*,publisherNamefromtitlestleftouterjoinpublisherspont.publisherID=p.publisherID";

returnsuper.queryBySQL(sql,newTitleRowMapper());

}

4.3.3拦截校验

<%@pageimport="java.util.List"%>

<%@pageimport="com.books.model.UserModel"%>

<%@pageimport="com.books.db.UserDAO"%>

<%@pagecontentType="text/html;charset=utf-8"%>

<%

request.setCharacterEncoding("utf-8");

UserDAOdao=newUserDAO();

Stringaccount=request.getParameter("account");

Stringpassword=request.getParameter("password");

UserModelmodel=dao.login(account,password);

if(model==null){

request.setAttribute("errorMessage","登陆失败,帐号或密码错误!

");

request.getRequestDispatcher("/").forward(request,response);

}else{

session.setAttribute("loginModel",model);

response.sendRedirect(request.getContextPath()+"/books/index.jsp");

}

 

第五章总结

本文主要介绍了JSP开发的网上图书管理系统。

在深刻的理解体系结构和开发模式的基础上,进一步学习了掌握了通过MyEclipse、tomcat的使用,通过对实际应用和开发系统,反过来促进自己对图书管理已经web应用设计和实现理论的理解。

然而想要真正的深化理解和灵活应用并不是意见容易额事情,在时间应用的web开发中,还有很多关于安全方面的问题需要考虑以及美工细节优化。

通过在知道老师的认真帮助下,结合自己缩写专业知识,在整个系统开发过程中进行的比较顺利的完成了自己的毕业设计,总体上对自己的成就还算是满意。

参考文献

[1].高林,周海燕.Jsp网上书店系统与案例分析[M].北京:

人民邮电出版社,2004年

[2].[美]RogersCadenhead.Java编程入门经典.梅兴文译.第4版.北京:

人民邮电出版社,2007

[3].[美]BruceEckel.ThinkingInJava.英文第4版.北京:

机械工业出版社,2007

[4]毕广吉.Java程序设计实例教程[M].北京:

冶金工业出版社,2007年

[5].王保罗.Java面向对象程序设计[M].北京:

清华大学出版社,2003年

[6].刘腾红,孙细明.信息系统分析与设计[M].北京:

科学出版社,2003年

[7].SiyanKS,WeaverJ.精通JSP网页编程.北京:

宇航出版社,1988年

[8].

致谢

在项目开发和论文撰写过程中,很幸运的得到江西师范大学老师的悉心指导,在此向他致以诚心的谢意。

同时真诚感谢,是你们使我获得了良好的理论知识和实践技能,任何目标,只说不做到头来都会是一场空。

尤其是在项目开发中遇到一些困难和不清楚的地方,技术上的难关总是让人在一遍遍的尝试和寻找解决方法中感到很沮丧,但是只要学会耐得住寂寞,经得起推敲,深入学习,这些不如意的地方只要坚持就一定能克服,而这就是我们程序员的进步。

经过一个多月的学习,在老师,同学和同事的帮助下我终于完成了毕业论文!

在这次项目开发和论文的编写中,让我对基于JSP开发的web项目流程有了更深刻的了解,同时对JAVA代码的运用和编写更加熟练。

而我对坚持就是胜利这句话也有了更深的体会。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2