图书管理系统的设计及开发_第1页
图书管理系统的设计及开发_第2页
图书管理系统的设计及开发_第3页
图书管理系统的设计及开发_第4页
图书管理系统的设计及开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

-.z学生实验报告书实验课程名称电子商务应用技术开发开课学院经济学院指导教师傅魁学生梁少晴01雨竹29阮筱钰30学生专业班级电商1401电商1402目录一、系统概述………………………〔3〕二、系统需求分析…………………〔3〕三、系统总体设计…………………〔6〕四、详细设计………………………〔9〕五、页面设计及编码实现…………〔15〕六、测试分析报告…………………〔50〕七、完毕语…………〔56〕图书馆管理系统系统概述系统开发背景和意义图书管理是每个高校必须切实面对的工作,但如今许多高校的图书馆管理系统还停留在以CS为构造的系统上。随着internet的应用日趋广泛,以及高校、高校与高校间信息的交流日趋密切,以CS为构造的信息管理系统以不能满足需求,所以,高校图书馆管理系统必须通过更新换代,将BS为构造的系统改为以CS为构造的系统,这样会大大提高系统的维护性以及系统应用的广泛性。由于图书这用特殊的物品,其表现在数据量非常庞大,所以对数据库的要求比较严格,由于oracle数据库其检索迅速、查找方便、可靠性高、性好,所以,选择oracle数据库为其存取数据。随着java技术在internet上的广泛应用以及java平安性高、执行效率高的优点,同时,java可以在任意平台上应用,所以可以任意组合硬件和操作系统,既可以在windows下开发,部署在linu*下,极大了节省了操作系统的费用以及硬件的费用。开发环境硬件环境:效劳器端/客户端:处理器:InterPentium3以上存:512M以上推荐1G或更高硬盘空间:80G以上软件环境:效劳器端/客户端:操作系统:Windows*P/Linu*浏览器:InternetE*plore7.0以上开发工具:MyEclipse+Tomcat7.0+MySQL在MyEclipse集成环境下进展图书管理员系统的界面设计和程序开发,在系统的后台采用MySQL作为数据库支持,使用时翻开浏览器。在地址栏中输入网址回车后即可进入图书管理员系统的主页,进展相应的操作。二、系统需求分析2.1任务概述1.新书购进后,进展分类、同一编码和入库。2.学生借阅图书后,记录相关信息。3.学生归还时,比照查看该书是否超期,超期后,按规定罚款。根据以上调查分析,给出业务流程图,如图:2.2数据描述〔数据流图+数据字典〕经过调查,我们了解了根本的业务程序,接下来给出系统的逻辑模型。构造系统的逻辑模型的工具主要是数据流图和数据字典,下面给出图书馆管理系统的根本模型,如图:根据根本模型,对其逐步细化,得到数据流图,如图:根据系统流程图,通过数据字典对数据进一步描述:图书:图书表构造描述:记录图书的相关信息定义:图书信息表图书编号、图书名称、ISBN号、作者、、类型、价格、库存量、副本存量、总量位置:LibWeb表空间借书登记:借书登记表构造描述:记录图书的借阅信息定义:借阅登记表借阅编号、学生编号、图书编号、借阅时间、归还时间、是否归还位置:LibWeb表空间学生信息:学生信息表构造描述:记录学生信息定义:学生信息表学生**、学生、性别、入校时间、毕业时间位置:LibWeb表空间归还登记:归还登记表构造描述:记录所有已归还图书的借阅情况定义:归还信息表编号、图书名称、归还时间、归还学生编号、归还学生位置:LibWeb数据空间用户信息:用户表构造描述:记录所有用户定义:用户信息表账号、真实、密码、描述位置:LibWeb数据空间角色信息:角色表构造描述:记录所有角色定义:角色信息表角色名称、角色描述位置:LibWeb数据空间2.3功能需求经过以上详细的调查和分析,在数据流程和数据分析的根底上,确定到达的功能为一下几点:新书入库登记:对与需求入库的书籍,进展数据登记,确认后书籍入库。图书信息的查询和修改功能:当图书资料发生变化、当图书丧失,应立即修改信息。图书借阅和归还登记:学生借阅图书时需要登记,学生归还图书时也需要登记。学生的增加、修改、删除等:新生入学时的信息和直接导入。用户的增加、修改、删除等:用户可根据权限来操作。2.4性能需求为了保证系统能够长期、高效、平安、稳定、可靠的运行,图书馆管理系统应满足一下性能需求:1.系统处理数据的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计阶段,就应该充分考虑到,包括数据存储量、访问量等,是系统能够满足图书管管理系统对数据的处理量。2.系统的开放性和系统的可扩大性:可扩大性是系统强健性的重要表达,系统开发中应充分考虑到系统的可扩大性。可扩大性包括系统设计和测试阶段的扩大以及系统使用后的扩大。任何系统在开发阶段对需求都是完全明确的,即使系统交付使用后,用户也会提出增加功能,所以,在系统设计阶段就应该考虑到系统的可扩大性。系统的易用性和易维护性:图书馆管理系统由图书馆管理员和学生使用,而使用者对系统构造并不了解,这就要求系统提供良好的用户接口和友好的界面设计。要实现这一点,要求操作简洁明了,数据校验通俗易懂。系统的响应速度:图书管管理系统的响应速度要求比较高,这就需要从一下几个方面入手解决:校园网的带宽、数据库的快速稳定、SQL语句执行的高效率、浏览器的选择。无论是哪方面,都会影响系统的响应速度,所以,图书馆管理系统能够拥有快速的响应速度,必须做好其中的没一点。系统总体设计系统架构设计:本系统的整体架构如下列图,从逻辑上来看主要分为三层:模型层、控制层、视图层。业务流程根据需求分析,以及反复的研究和探讨,确认其流程图如下:根据流程图,现具体功能描述如下:1.用户登录:系统对用户的合法性进展校验,登录后,系统会根据用户所拥有的权限来分配权限。2.书籍入库:填写书籍信息,可通过e*cel批量导入到数据库中。3.图书借阅:对已经入库的数据,学生可借阅。4.图书归还:对已经归还的书籍进展登记。5.管理措施:对定义系统规定的超期时间、超期处分方法、丧失赔偿方法。3.2系统功能模块图依据需求分析阶段得到的数据流图,在保证系统根本功能的前提下,结合系统设计流程,给出系统功能模块图,如图:3.3系统的流程图四、详细设计4.1程序流程图该设计阶段的任务是根据需求具体实现所需要的程序。经过这个阶段的设计,应该得出目标系统的准确描述,从而在系统实现阶段可以把这个描述直接翻译*种程序设计语言书写的程序。总体来说就是把各个模块的细节加以描述。由于本系统采用的是j2ee来设计程序,java是面向对象的变成语言,所以给出系统的主程序流程图,如图:4.2程序输入输出描述4.2.1用户角色模块1.输入工程:用户相关信息、角色相关信息2.输出工程:相应的页面4.2.2学生管理模块1.输入工程:用户相关信息、角色相关信息2.输出工程:相应的页面4.2.3图书管理模块1.输入工程:图书相关信息2.输出工程:图书信息4.2.4借阅管理模块1.输入工程:学生**、图书编号2.输出工程:借阅信息页面4.2.5归还管理模块1.输入工程:学生**、图书编号2.输出工程:归还信息页面4.3程序接口描述4.3.1外部接口由于该系统可以部署在任何操作系统,且系统界面采用浏览器方式实现,所以该系统是跨平台、跨操作系统的。4.3.2部接口通过面向对象程序设计模式实现低耦合高聚的程序设计思想,通过与数据库之间的数据交换,实现对数据的处理和保存。数据库的设计数据库的逻辑设计在需求阶段已经完成该系统所有的数据分析。根据该阶段建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。下面给出概念构造设计的E-R图,如下列图:图〔一〕图〔二〕图〔三〕实体:图书〔图书编号,书名,作者,,定价,图书类别,图书ISBN号,图书存量〕学生(学生**,学生,性别,入校时间,毕业时间)用户〔用户名,真实,密码,描述〕角色〔角色名,角色描述〕序号字段名称字段说明类型位数属性备注1ididnumber19非空1bookId编号varchar50非空2name名称Varchar100非空3ISBNISBNvarchar50可为空4author作者varchar100可为空5publisher出版商varchar100可为空6type类型number2可为空和数据字典相关7price价格number10可为空8storeQuan存量number10可为空9leftQuan副本存量number10可为空10totleQuan总量number10可为空11createTime创立时间date非空12operateTime修改时间date可为空13creator创立者number19非空14operate操作人number19可为空15status状态varchar1非空NorY16version版本number非空图书信息表序号字段名称字段说明类型位数属性备注1id编号number10非空2userId用户编号number10非空3bookId图书编号varcher50非空4broTime完毕时间date可为空5retime还书时间date可为空6ifReturn是否归还number1非空7createTime创立时间date非空8operateTime修改时间date可为空9creator创立者number19非空10operate操作人number19可为空11status状态varchar1非空NorY12version图书归还登记表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创立时间date非空3operateTime修改时间date可为空4creator创立者number19非空5operate操作人number19可为空6status状态varchar1非空NorY7version版本number非空8name用户名varchar60非空9relName真实varchar60可为空11password密码varchar64非空12description描述varchar1024可为空用户表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创立时间date非空3operateTime修改时间date可为空4creator创立者number19非空5operate操作人number19可为空6status状态varchar1非空NorY7version版本number非空8name角色名varchar32非空12descriptionvarchar1024非空角色表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创立时间date非空3operateTime修改时间date可为空4creator创立者number19非空5operate操作人number19可为空6status状态varchar1非空NorY7version版本number非空8stuId学生编号varchar50非空12name学生varchar100非空8se*性别number1非空12addTime入学时间date非空12endTime毕业时间date非空学生表图书表用户表五、页面设计及编码实现UI页面设计系统登录用户注册注册成功图书管理员登录主界面编辑书目信息编辑书目信息删除操作图书管理参数维护主界面图书管理参数编辑删除操作图书借阅审批主界面图书借阅审批界面审批完成界面图书类型管理主界面图书类型编辑删除操作图书条码管理主界面图书条码编辑删除操作菜单管理主界面〔系统管理〕菜单编辑界面删除操作角色管理主界面〔系统管理〕角色编辑界面删除操作用户管理主界面〔系统管理〕用户编辑界面删除操作用户登录——图书借阅查询1.系统的登录设计与实现基于系统的和数据的平安性考虑,所有用户进入系统之前必须经过登录页面进展合法性验证,身份验证成功之后才能进入系统为每个用户提供唯一的账号和初始密码,用户输入自己的用户名和密码之后,点击【完成】按钮登录系统。系统后台会对用户输入的登录信息进展认证,如果用户名或者密码不合法时,后台会返回错误信息并在前端页面上进展显示,提示用户“用户名或密码不正确,请重新输入!〞注册用户,假设信息已存在,注册失败,返回登录页面注册用户成功,返回登录页面登录后主页面例如代码如下所示:1〕注册代码:packageservlet;importjava.io.IOE*ception;importjava.io.PrintWriter;importjava.sql.SQLE*ception;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importbean.userBean;importdao.user;publicclassZhuceServlete*tendsServlet{ /** *Constructoroftheobject. */ publicZhuceServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *paramrequesttherequestsendbytheclienttotheserver *paramresponsetheresponsesendbytheservertotheclient *throwsServletE*ceptionifanerroroccurred *throwsIOE*ceptionifanerroroccurred */ publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *paramrequesttherequestsendbytheclienttotheserver *paramresponsetheresponsesendbytheservertotheclient *throwsServletE*ceptionifanerroroccurred *throwsIOE*ceptionifanerroroccurred */ publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd"); usertest=newuser(); try{ userBeanuser=test.check(name); if(user==null){ userBeanuser1=newuserBean(name,pwd); test.register(user1); response.sendRedirect("ZhuceSuccess.jsp"); }else{ response.sendRedirect("ZhuceError.jsp"); } }catch(E*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}2〕登陆代码:packageservlet;importjava.io.IOE*ception;importjava.io.PrintWriter;importjava.sql.SQLE*ception;importjava.util.List;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importdao.library;importdao.user;importbean.libraryBean;importbean.userBean;publicclassLoginServlete*tendsServlet{ /** * */ privatestaticfinallongserialVersionUID=1L; /** *Constructoroftheobject. */ publicLoginServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *paramrequesttherequestsendbytheclienttotheserver *paramresponsetheresponsesendbytheservertotheclient *throwsServletE*ceptionifanerroroccurred *throwsIOE*ceptionifanerroroccurred */ publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ response.setContentType("te*t/html"); Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd"); //userBeanuser=newuserBean(name,pwd); usertest=newuser(); try{ userBeanuser=test.check(name); if(user!=null){ if(pwd.equals(user.getPWD())){ librarybookinfo=newlibrary();//Dao涓殑library List<libraryBean>list=bookinfo.selectall(); request.getSession().setAttribute("list",list);// response.sendRedirect(request.getConte*tPath()+"InfoServlet"); request.getRequestDispatcher("InfoServlet").forward(request,response); }else{ response.sendRedirect("error.jsp"); } }else{ response.sendRedirect("error.jsp"); } }catch(E*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *paramrequesttherequestsendbytheclienttotheserver *paramresponsetheresponsesendbytheservertotheclient *throwsServletE*ceptionifanerroroccurred *throwsIOE*ceptionifanerroroccurred */ publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ response.setContentType("te*t/html"); doGet(request,response); } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}2.系统首页设计及实现登录后主页面3.图书管理模块设计及实现图书管理员登录系统后可以进展图书管理,图书管理模块包含了图书增、删、改、查管理和图书管理参数等子功能。下面分别进展介绍:图书的增、删、改、查管理截图如下所示:1)添加图书信息2)删除图书信息3)以图书类应编号为主键,修改图书信息:4)输入书名,查询图书信息:例如代码如下所示:增加代码:packageservlet;importjava.io.IOE*ception;importjava.sql.SQLE*ception;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importbean.libraryBean;importdao.library;publicclassAddBookServlete*tendsServlet{ /** *Constructoroftheobject. */ publicAddBookServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse){ librarylibrary=newlibrary(); libraryBeanbook=newlibraryBean(request.getParameter("pubname"), request.getParameter("bookname"), Integer.parseInt(request.getParameter("typeid")), request.getParameter("author"), Integer.parseInt(request.getParameter("storage")), Integer.parseInt(request.getParameter("borrownum"))); try{ library.add(book); request.getRequestDispatcher("InfoServlet").forward(request,response); }catch(ClassNotFoundE*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(E*ceptione){ e.printStackTrace(); } } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}删除代码:packageservlet;importjava.io.IOE*ception;importjava.io.PrintWriter;importjava.sql.SQLE*ception;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importdao.library;publicclassDeleteServlete*tendsServlet{ /** *Constructoroftheobject. */ publicDeleteServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *paramrequesttherequestsendbytheclienttotheserver *paramresponsetheresponsesendbytheservertotheclient *throwsServletE*ceptionifanerroroccurred *throwsIOE*ceptionifanerroroccurred */ publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ librarylibrary=newlibrary(); inti=Integer.parseInt(request.getParameter("typeid")); try{ library.delete(i); request.getRequestDispatcher("InfoServlet").forward(request,response); }catch(E*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } Override protectedvoiddoPost(ServletRequestreq,ServletResponseresp) throwsServletE*ception,IOE*ception{ //TODOAuto-generatedmethodstub super.doPost(req,resp); } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}修改代码:packageservlet;importjava.sql.SQLE*ception;importjava.util.List;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importbean.libraryBean;importdao.library;SuppressWarnings("serial")publicclassUpDateServlete*tendsServlet{ /** *Constructoroftheobject. */ publicUpDateServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(ServletRequestrequest,ServletResponseresponse){ Integerid=Integer.parseInt((request.getParameter("typeid"))); librarylibrary=newlibrary(); try{ List<libraryBean>book=library.getForValue(id); System.out.println(book); request.setAttribute("book",book); request.getRequestDispatcher("/UpDate.jsp").forward(request,response); }catch(E*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}查询代码:packageservlet;importjava.io.IOE*ception;importjava.sql.SQLE*ception;importjava*.servlet.ServletE*ception;importjava*.servlet..Servlet;importjava*.servlet..ServletRequest;importjava*.servlet..ServletResponse;importbean.libraryBean;importdao.library;publicclassEditServlete*tendsServlet{ /** *Constructoroftheobject. */ publicEditServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletE*ception,IOE*ception{ librarylibrary=newlibrary(); libraryBeanbook=newlibraryBean(request.getParameter("pubname"), request.getParameter("bookname"), Integer.parseInt(request.getParameter("typeid")), request.getParameter("author"), Integer.parseInt(request.getParameter("storage")), Integer.parseInt(request.getParameter("borrownum"))); System.out.println(book); try{ library.update(book); request.getRequestDispatcher("InfoServlet").forward(request,response); }catch(E*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /** *Initializationoftheservlet.<br> * *throwsServletE*ceptionifanerroroccurs */ publicvoidinit()throwsServletE*ception{ //Putyourcodehere }}Librarydao:packagedao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLE*ception;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importDB.Dbconnection;importbean.libraryBean;publicclasslibrary{staticDbconnectiondb=newDbconnection();/***该方法向数据库中插入一条信息*parambook*throwsE*ception*/ publicstaticvoidadd(libraryBeanbook)throwsE*ception{ Connectioncon=db.getConnection(); PreparedStatementps=con.prepareStatement("insertintolibraryvalues(?,?,?,?,?,?)"); ps.setString(1,book.getPubname()); ps.setString(2,book.getBookname()); ps.setInt(3,book.getTypeid()); ps.setString(4,book.getAuthor()); ps.setInt(5,book.getStorage()); ps.setInt(6,book.getBorrownum()); ps.e*ecuteUpdate(); ps.close(); con.close(); } /** *该方法删除数据库中指定信息*paramtypeid *throwsClassNotFoundE*ception *throwsSQLE*ception */ publicvoiddelete(inttypeid)throwsE*ception{ Connectioncon=db.getConnection(); PreparedStatementps=con.prepareStatement("deletefromlibrarywheretypeid=?"); ps.setInt(1,typeid); ps.e*ecuteUpdate(); ps.close(); con.close(); } /** *执行更新操作*parambook封装的book对象*throwsClassNotFoundE*ception *throwsSQLE*ception */ publicvoidupdate(libraryBeanbook)throwsE*ception{ Connectioncon=db.getConnection(); PreparedStatementps=con.prepareStatement("updatelibrarysetpubname=?," +"bookname=?,author=?,storage=?,"+"borrownum=?wheretypeid=?"); ps.setString(1,book.getPubname()); ps.setString(2,book.getBookname()); ps.setString(3,book.getAuthor()); ps.setInt(4,book.getStorage()); ps.setInt(5,book.getBorrownum()); ps.setInt(6,book.getTypeid()); ps.e*ecuteUpdate(); ps.close(); con.close(); } /** *该方法是用来查询数据库中的所有记录并返回一个List集合*return *throwsClassNotFoundE*ception *throwsSQLE*ception */ publicList<libraryBean>selectall()throwsE*ception{ List<libraryBean>books=newArrayList<libraryBean>(); Connectioncon=db.getConnection(); Statementst=con.createStatement(); ResultSetres=st.e*ecuteQuery("select*fromlibrary"); while(res.ne*t()){ Stringpubname=res.getString(1); Stringbookname=res.getString(2); inttypeid=res.getInt(3); Stringauthor=res.getString(4); intstorage=res.getInt(5); intborrownum=res.getInt(6); libraryBeanbook=newlibraryBean(pubname,bookname,typeid,author,storage,borrownum); books.add(book); } returnbooks; } /** *该方法是用typeId来查询*一条记录,并返回该记录的一个libararyBean的对象,用在修改信息时,用id先提出信息,id不可修改*paramidtypeId *return */ publicList<libraryBean>getForValue(Integerid)throwsE*ception{ List<libraryBean>books=newArrayList<libraryBean>(); Connectioncon=db.getConnection(); Statementst=con.createStatement(); ResultSetres=st.e*ecuteQuery("select*fromlibraryWHEREtypeid="+id); while(res.ne*t()){ Stringpubname=res.getString(1); Stringbookname=res.getString(2); inttypeid=res.getInt(3); Stringauthor=res.getString(4); intstorage=res.getInt(5); intborrownum=res.getInt(6); libraryBeanbook=newlibraryBean(pubname,bookname,typeid,author,storage,borrownum); books.add(book); } returnbooks; } /** *该方法是用bookName来查询*一条记录,并返回该记录的一个libararyBean的对象*paramname *return *throwsClassNotFoundE*ception *throwsSQLE*ception */ publicList<libraryBean>getWithName(StringbookName)throwsE*ception{ List<libraryBean>books=newArrayList<libraryBean>(); Connectioncon=db.getConnection(); Statementst=con.createStatement(); ResultSetres=st.e*ecuteQuery("SELECT*FROMlibraryWHEREbooknameLIKE"+bookName); while(res.ne*t()){ Stringpubname=res.getString(1); Stringbookname=res.getString(2); inttypeid=res.getInt(3); Stringauthor=res.getString(4); intstorage=res.getInt(5); intborrownum=res.getInt(6); libraryBeanbook=newlibraryBean(pubname,bookname,typeid,author,storage,borrownum); books.add(book); } returnbooks; }}Userdao:packagedao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLE*ception;importjava.sql.Statement;importbean.userBean;importDB.Dbconnection;publicclassuser{ staticDbconnectiondb=newDbconnection(); publicuserBeancheck(Stringname)throwsSQLE*ception,ClassNotFoundE*ception{ Connectioncon=db.getConnection(); Statementstmn=con.createStatement(); ResultSetres=stmn.e*ecuteQuery("select*frommanagerwherename="+name); if(res.ne*t()){ Stringname1=res.getString(1); Stringpassword1=res.getString(2); userBeanuser=newuserBean(name1,password1); returnuser; } else{ returnnull; } } publicvoidregister(userBeanuser)throwsClassNotFoundE*ception,SQLE*ception{ Connectioncon=db.getConnection(); PreparedStatementps=con.prepareStatement("insertintomanagervalues(?,?)"); ps.setString(1,user.getName()); ps.setString(2,user.getPWD()); ps.e*ecuteUpdate(); ps.close(); con.close(); }}六、测试分析报告软件开发过程是一个极其复杂的过程,测试就是解决功能性差异和非功能性差异的一种有效的手段,他在软件开发过程中有着十分的重要的作用,是保证软件质量的重要一环。在软件开发的生命周期中有着十分重要的作用,它是保证软件质量的极其重要的一环。对于一个架构复杂,功能繁多的应用系统,更离不开软件测试,因为在设计或者编码的过程中总会有各种各样的情况未能考虑到,通过测试可以发现设计编码中的疏忽,然后加以修正,使软件更加稳定可靠。由此可以快速定位并解决问题。软件开发生命周期包含很多阶段,各个阶段都可能发生各种事先未能预料的问题,所以有必要在每个阶段都对其进展针对性的测试,尽可能早地,尽可能多地发现软件中的缺陷,然后对其加以修正。更改测试案例期望结果更改评价测试评价测试程序测试结果错误信息再评价再评价纠错信息测试方法:〔1〕软件黑盒测试是软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的部情况,只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部构造进展测试,而不考虑程序部逻辑构造。〔2〕软件白盒测试产生的测试用例能够:1)保证一个模块中的所有独立路径至少被使用一次;2)对所有逻辑值均需测试true和false;3)在上下边界及可操作围运行所有循环;4)检查部数据构造以确保其有效性。这一方法是把测试对象看作一个翻开的盒子,测试人员依据程序部逻辑构造相关信息,设计或选择测试用例,对程序所有逻辑路径进展测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。测试方案和要点软件测试的本质是针对要测试的容确定一组测试用例。在讨论之前,我先把要测试的各个模块的方案和要点列出:用户角色测试要点模块正常运行流程用户查询等操作异常输入数据校验〔用户唯一性、数据输入围、数据类型等〕数据是否添加到数据库中数据库连接异常的相应情况图书管理模块测试要点模块正常运行流程数据查询等操作异常输入数据校验〔图书编号唯一、数据输入围、数据类型等〕数据是否保存在数据库中数据库连接异常的相应情况6.1.3学生管理模块测试要点模块正常运行流程数据查询等操作异常输入数据校验〔**唯一、数据输入围、数据类型等〕数据是否保存在数据库中数据库连接异常的相应情况6.1.4借阅模块测试要点模块正常运行流程数据查询等操作异常输入数据校验数据是否保存在数据库中数据库连接异常的相应情况6.1.5图书归还模块测试要点模块正常运行流程数据查询等操作异常输入数据校验数据是否保存在数据库中数据库连接异常的相应情况6.2测试用

温馨提示

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

评论

0/150

提交评论