基于java的小型图书管理系统设计与实现毕设论文.doc
目 录 小型图书管理系统设计与实现目 录1、 引言31.1选题31.2开发计划31.3开发工具与环境配置32、 系统概述42.1需求分析42.2系统的架构43、 详细设计53.1功能结构图53.2数据库设计53.3页面的结构和关系图63.4模块设计74. 系统实现185.结束语201、 引言1.1选题为了实现图书管理的自动化,现对其设计相应的系统。与图书馆管理信息系统不同,本系统为小型图书管理系统,用于个人对所拥有的图书进行管理,具有管理员登录以及图书的增删改查功能。1.2开发计划 设计一个小型图书管理系统,该系统由登录模块和功能模块组成。登录模块实现管理员登录,功能模块分为图书查询、图书入库、图书删除、图书修改四个部分。1.3开发工具与环境配置操作系统:Windows 7数据库服务器:SQL server 2000(采用ODBC数据源连接)Web服务器:Tomcat开发工具:eclipse6.0环境配置JDK安装路径:C:jdkTomcat服务器安装路径:D:java软件tomcatapache-tomcat-7.0.37-windows-x86apache-tomcat-7.0.37环境变量设置JAVA_HOME=D:jdk CLASSPATH=%JavaHome%libdt.jar;%JavaHome%libtools.jarPATH变量添加的部分:%JAVA_HOME%bin2、 系统概述2.1需求分析2.1.1图书管理系统需求概述图书管理系统的开发主要涉及到管理员登录和图书信息管理。图书信息管理包括:添加新进图书、删除旧图书、修改图书信息、图书查询。图书管理员可以浏览、查询、添加、删除、修改图书的基本信息。2.1.2功能需求 (1)管理员登录只有管理员才能对图书信息进行操作 (1)图书信息浏览对入库的图书按编号进行浏览;(2)图书查询根据书名对图书进行快速查询;(3)图书管理对图书馆的书籍进行管理,添加、删除以及修改信息;2.1.3 性能需求可靠性和可用性需求:(1)系统中的软件可以每天使用24小时,每年使用365天;(2)系统中的软件故障率小于等于5%。2.2系统的架构 考虑到本系统简单、容易实现,故没有采用传统的MVC模式,而是以纯JSP页面来实现各模块之间的跳转。3、 详细设计3.1功能结构图 登录界面 图书管理面板 编辑图书查询图书删除图书添加图书图1 图书管理系统功能结构图 3.2数据库设计根据系统分析,设计图书信息管理系统的数据库(tsgl)表有:管理员信息表(表1)、图书信息表(表2)。表结构如下:表1:gly_id字段说明类型长度主键备注username用户名varchar50 nopassword密码varchar30 no表2:t_book字段说明类型长度主键备注id图书编号char11yesname书名varchar50no author作者char10publish出版社varchar50noprice图书价格char11no登录界面login.jsp3.3页面的结构和关系图验证valid.jsp 密码错误 图书管理面板bookList.jsp保存修改操作SavaBookEdit.jsp保存插入操作SaveBookAdd.jsp修改操作bookEdit.jsp删除操作bookDel.jsp插入操作bookAdd.jsp 查询 操作图书管理面板bookList.jsp 密码正确 3.4模块设计3.4.1登录模块登录页面:Login.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录图书管理系统 </title><style type="text/css"><!-.STYLE1 font-size: 36px;font-weight: bold;-></style></head><body bgcolor=cyan><form method="post" action="valid.jsp"> <table width="400" height="120" border="1" align="center"> <caption> <span class="STYLE1">登录图书管理系统</span> </caption> <tr> <td width="166">用户名:</td> <td width="318"><input name="username" type="text" id="username"></td> </tr> <tr> <td>密码:</td> <td><input name="password" type="password" id="password"></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="Submit" value="登录"> <input type="reset" name="Submit2" value="取消"> </td> </tr> </table></form></body></html>验证程序:valid.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% page import="java.sql.*" %><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>判断登录</title></head><body><%String user=request.getParameter("username"); String pass=request.getParameter("password");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");PreparedStatement ps =con.prepareStatement("select * from gly_id where username=? and password=?");ps.setString(1,user);ps.setString(2,pass);ResultSet rs = ps.executeQuery(); if(rs.next()response.sendRedirect("bookList.jsp"); else response.sendRedirect("Login.jsp"); %></body></html>3.4.2图书管理模块(1)图书浏览&&查询页面:bookList.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%page import="java.sql.*"%><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>图书管理面板</title><style type="text/css"><!-.STYLE1 font-size: 36px;font-weight: bold;-></style></head><body><form name="form1" method="get" action="bookList.jsp"> <table width="600" border="1" align="center" bgColor="#ffffff"> <br> <caption> <span class="STYLE1">图书信息一览表</span> </caption> <br><center>请输入书名:<input type="text" name="name" size="16" maxlength="25"><input type="submit" name="submit" value="查询"></center><br> <tr> <td width="98" bgColor="#808000">编号</td> <td width="118" bgColor="#808000">书名</td> <td width="118" bgColor="#808000">作者</td> <td width="108" bgColor="#808000">出版社</td> <td width="78" bgColor="#808000">价格</td> <td width="60" bgColor="#808000">编辑</td> <td width="60" bgColor="#808000">删除</td> </tr> <% String name=null; String sql="" ResultSet rs=null; if(request.getParameter("name")!=null) name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"); if (name=null) sql="select * from t_book order by id" else sql="select * from t_book where name like'%"+name+"%' order by id" System.out.print(name); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa"); Statement st=con.createStatement(); rs=st.executeQuery(sql); while(rs.next()String ID=rs.getString("id");%><tr> <td><%=ID %></td> <td><%=rs.getString("name") %></td> <td><%=rs.getString("author") %></td> <td><%=rs.getString("publish") %></td> <td><%=rs.getString("price") %></td> <td><a href="bookEdit.jsp?id=<%=ID%>">修改</a></td> <td><a href="BookDel.jsp?id=<%=ID%>">删除</a></td> </tr> <% st.close(); con.close(); catch(Exception e) e.printStackTrace(); %> <tr> <td colspan="7" align="center" bgcolor="#ff8000"> <input name="add" type="button" value="添加图书" onClick="location='BookAdd.jsp'"> </td> </tr> </table></form></body></html>(2) 图书添加页面:BookAdd.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加图书信息</title><style type="text/css"><!-.STYLE1 font-size: 36px;font-weight: bold;-></style></head><body> <form name="form1" method="post" action="bookSaveAdd.jsp"> <div align="center" class="STYLE1">添加图书信息 </div> <table width="300" height="120" border="1" align="center"> <tr> <td>编号:</td> <td><input type="text" name="id" ></td> </tr> <tr> <td width="74">书名:</td> <td width="210"><input type="text" name="name"></td> </tr> <tr> <td>作者:</td> <td><input type="text" name="author" ></td> </tr> <tr> <td>出版社:</td> <td><input type="text" name="publish" ></td> </tr> <tr> <td>价格:</td> <td><input type="text" name="price" ></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="Submit1" value="提交"> <input type="reset" name="Submit2" value="重置"> </td> </tr> </table></form>保存添加程序:SaveBookAdd.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%page import="java.sql.*"%><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>图书管理面板</title><style type="text/css"><!-.STYLE1 font-size: 36px;font-weight: bold;-></style></head><body><form name="form1" method="get" action="bookList.jsp"> <table width="600" border="1" align="center" bgColor="#ffffff"> <br> <caption> <span class="STYLE1">图书信息一览表</span> </caption> <br><center>请输入书名:<input type="text" name="name" size="16" maxlength="25"><input type="submit" name="submit" value="查询"></center><br> <tr> <td width="98" bgColor="#808000">编号</td> <td width="118" bgColor="#808000">书名</td> <td width="118" bgColor="#808000">作者</td> <td width="108" bgColor="#808000">出版社</td> <td width="78" bgColor="#808000">价格</td> <td width="60" bgColor="#808000">编辑</td> <td width="60" bgColor="#808000">删除</td> </tr> <% String name=null; String sql="" ResultSet rs=null; if(request.getParameter("name")!=null) name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"); if (name=null) sql="select * from t_book order by id" else sql="select * from t_book where name like'%"+name+"%' order by id" System.out.print(name); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa"); Statement st=con.createStatement(); rs=st.executeQuery(sql); while(rs.next()String ID=rs.getString("id");%><tr> <td><%=ID %></td> <td><%=rs.getString("name") %></td> <td><%=rs.getString("author") %></td> <td><%=rs.getString("publish") %></td> <td><%=rs.getString("price") %></td> <td><a href="bookEdit.jsp?id=<%=ID%>">修改</a></td> <td><a href="BookDel.jsp?id=<%=ID%>">删除</a></td> </tr> <% st.close(); con.close(); catch(Exception e) e.printStackTrace(); %> <tr> <td colspan="7" align="center" bgcolor="#ff8000"> <input name="add" type="button" value="添加图书" onClick="location='BookAdd.jsp'"> </td> </tr> </table></form></body></html>(3) 删除操作:<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%page import="java.sql.*"%><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="3;URL=bookList.jsp"><title>删除图书</title></head><body><% String strId = request.getParameter("id"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");PreparedStatement ps = con.prepareStatement("delete from t_book where id=?"); ps.setString(1,strId); ps.execute(); con.close(); %> 正在删除图书,3秒后自动跳转.</body></html>(4) 修改操作:bookEdit.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% page import="java.sql.*" %><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>编辑图书信息</title><style type="text/css"><!-.STYLE1 font-size: 36px;font-weight: bold;-></style></head><body><% String strId = request.getParameter("id");/获取传过来的参数(网络上传输的只能是字符串) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");PreparedStatement ps =con.prepareStatement("select * from t_book where id=?");ps.setString(1,strId);ResultSet rs=ps.executeQuery();if(rs.next()String ID=rs.getString("id"); %><form name="form1" method="post" action="bookSaveEdit.jsp"><input type="hidden" name="id" value="<%=ID%>"> <div align="center" class="STYLE1">编辑图书信息</div> <table width="300" height="120" border="1" align="center"> <tr> <td>编号:</td> <td><input name="id" type="text" value="<%=ID%>"></td> </tr> <tr> <td width="74">书名:</td> <td width="210"><input type="text" name="name" value="<%=rs.getString("name") %>"></td> </tr> <tr> <td width="74">作者:</td> <td width="210"><input type="text" name="author" value="<%=rs.getString("author") %>"></td> </tr> <tr> <td>出版社:</td> <td><input type="text" name="publish" value="<%=rs.getString("publish") %>"></td> </tr> <tr> <td>价格:</td> <td><input type="text" name="price" value="<%=rs.getString("price") %>"></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="Submit" value="确定修改"> <input type="reset" name="Submit2" value="取消"> </td> </tr> </table></form><%con.close(); %></body></html>保存修改程序:SavaBookEdit.jsp<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% page import="java.sql.*" %><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>保存编辑</title></head><body><% request.setCharacterEncoding("UTF-8");String name=request.getParameter("name");String author=request.getParameter("author");String pub=request.getParameter("publish");String price=request.getParameter("price");String id=request.getParameter("id");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");PreparedStatement ps =con.prepareStatement("update t_book set name=?,author=?,publish=?,price=? where id=?");ps.setString(1,name);ps.setString(2,author);ps.setString(3,pub);ps.setString(4,price);ps.setString(5,id);ps.execute();con.close();response.sendRedirect("bookList.jsp"); %></body></html>4. 系统实现登录页面:图书预览页面:图书修改页面: 图书查询页面: 5.结束语从上面的演示中可以看出,此系统可以完成用户登录和图书管理两大功能。在本系统的应用下可以实现图书管理员按照书名查询书库的藏书,方便的增添图书,删除图书,修改图书信息。测试阶段一方面发现了系统的各种错误,另外一方面验证了修改后的系统能够实现提高图书管理工作效率的预期目的。不知不觉中,课程设计快接近尾声。回顾这几天,短暂而充实。经过这一个学期的学习,使我对java web开发有了一定的了解,从开始的j2se到后来的j2ee,一步一步的前进,一点一点的积累,最后完成了该图书管理系统的设计与实现。也是由于时间比较紧张只有五天时间,所以该系统功能比较简单,暂且留待日后在完善。 19