首页 Oracle课程设计--图书馆书籍管理系统

Oracle课程设计--图书馆书籍管理系统

举报
开通vip

Oracle课程设计--图书馆书籍管理系统Oracle课程设计--图书馆书籍管理系统湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2012~2013学年第一学期课程名称大型数据库应用指导教师曾敏职称高级讲师学生姓名黄庆清专业班级计算机091班学号09408100103题目图书馆书籍管理系统成绩起止日期2012年11月27日~2012年12月22日目录清单序号材料名称资料数量备注1课程设计任务书2课程设计说明书3张456湖南工业大学课程设计任务书2012—2013学年第一学期计算机与通信学院(系、部)计算机科学与技术专业091班级课程名称:大型数据...

Oracle课程设计--图书馆书籍管理系统
Oracle课程设计--图书馆书籍管理系统湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2012~2013学年第一学期课程名称大型数据库应用指导教师曾敏职称高级讲师学生姓名黄庆清专业班级计算机091班学号09408100103题目图书馆书籍管理系统成绩起止日期2012年11月27日~2012年12月22日目录清单序号材料名称资料数量备注1课程设计任务书2课程设计 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 3张456湖南工业大学课程设计任务书2012—2013学年第一学期计算机与通信学院(系、部)计算机科学与技术专业091班级课程名称:大型数据库应用设计题目:图书馆书籍管理系统完成期限:自2012年11月27日至2012年12月22日共一周内容及任务设计的主要技术参数Oracle数据库,JSP,JavaScript,Struts2,Servlet,JDBC,Java设计任务实现对图书馆中图书的添加,删除,修改,查询;以及通过触发器,存储过程等,对图书状态 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中的信息进行查询,添加,修改,和删除;图书信息表中的书籍编号字段,通过索引和触发器,让其以自动增长的方式进行生成,方便图书的添加;三、设计工作量数据的建模;数据库中表的设计;触发器和存储过程的设计;JDBC连接Oracle数据库前台数据逻辑的设计;前台界面的设计;进度安排起止日期工作内容2012-11-27~2012-11-28系统的规划2012-11-29~2012-12-01数据库的设计和建模2012-12-02~2012-12-12系统的概要设计以及系统前台的设计,编码与测试2012-12-13~2012-12-22系统文档的整理主要参考资料《Oracle数据库应用》电子出版社出版《Oracle11g从入门到精通》钱慎一(编者),张素智(编者)《OracleDatabase9i/10g/11g编程艺术:深入数据库体系结构(第2版)》~凯特(ThomasKyte)(作者),苏金国(译者),王小振(译者),等(译者)指导教师(签字):年月日系(教研室)主任(签字):年月日大型数据库应用课程设计课程设计说明书图书馆书籍管理系统起止日期:2012年11月27日至2012年12月25日学生姓名黄庆清班级计算机091班学号09408100103成绩指导教师(签字)计算机与通信学院2012年12月25日图书馆书籍管理系统1、课题的介绍和课题的任务图书馆书籍管理系统主要对图书馆中书籍进行管理,包括对书籍的添加,删除,修改,各种方式的查询等操作,用于管理员对图书馆书籍库的管理;采用Oracle作为数据库,应用了Java,Jsp,JavaScript,SQL等编程语言以及Struts2,JDBC等等技术,另外系统采用B/S结构,MVC的设计模式进行设计,在数据库方面,多处应用了存储过程和触发器;二、课程设计的要求1、书籍的添加:通过触发器和索引,使图书的编号按照自动增长的方式进行添加,其他字段还有:书籍名称,作者,出版社,页数,藏书地址等;并且通过定义触发器,使每增加一条图书信息,在图书状态表中给其增加对应的图书状态信息;2、书籍的删除:通过存储过程来实现,如果该书的状态为已借出,就不能删除书籍,并发出提示信息;书籍的删除,通过定义before触发器,假如该书籍能够删除,就在其删除之前,删掉该书籍的状态信息;3、书籍的修改:修改除了书籍主键外的其他信息;4、书籍的查询:可根据图书的索引号进行精确查询,可以根据图书的书名,作者,出版社,藏书地址等进行模糊查询,基于系统的需求,还提供系统中以所有字段作为关键字的模糊查询;5、用户身份验证,管理员通过用户登录,输入验证信息,若经过系统验证后,若正确,则进入图书管理主页,若出现错误,则跳到登录界面,并返回相应的友好的错误提示信息;三、系统的分析和系统中数据库的分析(ER图等)1、系统设计1.1.系统概要设计- 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图系统总体设计如图1.1所示​��系统管理员输入登录信息反馈登录成功或失败返回操作结果返回查询结果查询请求修改请求删除请求插入请求​图1-1实现用户的登录,管理员登录后对图书进行书籍的添加,书籍各种方式的查询,书籍的修改,书籍的删除;1.2.系统的详细设计1.2.1.用户的登录图书管理员通过输入管理员和密码进行验证,若验证正确,则进入系统。​��管理员登录系统系统操作主界面登录请求返回登录失败消息登录成功!到系统操作主界面​图1.21.2.2.书籍的添加书籍的添加,用户在表单中输入书籍的信息,点击录入,数据通过Struts2的过滤器,自动提交数据,在Struts的Action类中进行获取数据,然后进行检测,如果检测输入信息有误,则跳转到添加页面,并返回相应的错误提示;如果信息正确,则调用添加数据存储过程进行数据的持久化;具体流程如图1-3所示;​���管理员添加模块添加添加请求以及对应信息OracleDB添加失败,返回对应信息​图1.31.2.3.书籍的修改书籍的修改,首先查询出需要修改的书籍,点击修改,跳转到书籍修改页面,顺便通过session对象,将原有的书籍对象带过去;在书籍修改页面表单中修改相应属性,提交到Struts2的Action类中,首先进行数据的校验,校验失败,跳转到修改页面,返回相应的出错信息,校验成功,则进行书籍的更新处理;具体流程如图1.4所示;​���管理员修改失败,返回对应信息修改模块修改修改请求OracleDB​图1.41.2.4.书籍的删除书籍的删除,首先查询出需要修改的书籍,点击删除,提交到Struts2中的Action类,顺便传入书籍编号这个值(主键,唯一),首先访问书籍库进行查询该书籍的状态是否是“在馆”,是则返回true,进入书籍的删除环节;调用数据库中的存储过程和触发器,进行书籍的删除,确保系统数据的一致性;具体流程如图1.5所示​���管理员删除模块删除删除请求OracleDB删除失败,返回对应信息​图1.51.2.5.书籍的查询书籍的查询,本系统中书籍的查询设定了多种方式,包括按索书号查询,按书名查询,按书籍作者查询,按出版社查询,还有按所有字段进行查询;先选择查询的方式,输入关键字,然后进行数据的提交,经数据过滤校验后,进入控制层,通过判断其查询类型,进行数据的查询,将符合条件的数据查询出来,装入集合框架ArrayList中,传入显示层进行数据的显示,具体流程如图1.6所示;​�����管理员消息显示查询系统OracleDB查询​图1.62.数据库的设计2.1.数据库建模2.1.1.E-R图2.1.1.1.图书信息建模系统中书籍信息建模如E-R图2.1所示:​���Book(书籍)Bookstate(书籍状态)Bname书籍名称Writer书籍作者Publish出版社Place藏书地址Bnum书籍编号Page页数Bnum书籍编号State书籍状态Cardid书籍持有者编号借出日期对应11​图2.12.1.1.2用户信息的建模用户信息的建模如图2.2所示:​��管理员用户名Usename密码Pwd​图2.23系统前台的设计3.1、系统的结构本系统使用MVC模式作为系统的设计结构,以JSP作为视图层;采用struts2框架,以其Acation类作为其控制层,以各种JavaBean,FormBean作为模型层;3.2、界面的设计和布局3.2.1登录界面如图3.1所示图3.13.2.2图书管理界面图书管理主页中提供了集书籍添加,书籍修改,书籍删除,书籍详情查询及多功能的图书检索功能,使用方便,操作简单,并设有完善友好的错误提示功能,具体展示如图3.2所示;图3.23.2.3图书修改界面书籍修改界面如图3.3所示;图3.33.2.4.图书详情界面由于数据量比较大,在查询主页中不便显示,通过图书详情界面,将对应图书信息进行显示;其界面及运行结果如图3.4所示;图3.4四、系统的数据库实现1.1.书籍信息表和书籍状态表的设计书籍信息表中包括书籍编号,书籍名称,作者,出版社,页数,藏书地址等字段,书籍编号通过触发器的方式,以自动增长的方式进行添加;页数为Number类型,其他的都为字符串行;图书馆中书籍的各个字段的设计如图4.1所示分为图书表(book)和图书状态表(bookstate);图4.1表4-1book表的设计bnumNumberNotnull,自动生成,主键bnameCharacter(256)NotnullwriterCharacter(256)NotnullpublishCharacter(256)NotnullpageNumberNotnullplaceCharacter(256)Notnull表4-2bookstate表的设计bnumNumberNotnull外键,主键stateCharacter(256)Notnulldefault‘wait’cardidCharacter(256)nullborrowDatenull1.2.管理员验证信息的设计如图4.2所示CreatetableManager(Usernamevarchar2(20),Pwdvarchar2(20));图4.2表4-3manage表的设计usernameCharacter(256)Notnull主键pwdCharacter(256)Notnull1.3.触发器,存储过程的设计1.3.1.图书信息添加触发器的设计先创建一个索引,计算出前一个字段的最大值,然后创建before触发器,每增加一项书籍 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,给书籍编号这一字段赋值;图书的管理--创建图书表:Createtablebook(bnumnumber(11),bnamevarchar2(20),writervarchar2(20),publishvarchar2(50),pagenumber(11),placevarchar2(20),);--创建序列:createsequencebook_seqincrementby1startwith1maxvalue1.0E28minvalue1nocache----创建触发器createorreplacetriggertr_bookbeforeinsertbookforeachrowbeginselectbook_seq.nextvalinto:new.bnumfromdual;endtr_book;--测试,插入数据Insertintobook(bname,writer,publish,page,place)values('compute','liusi','China',342,'一楼库');insertintobook(bname,writer,publish,page,place)values('computerr','liusi','湖工大',842,'二楼库');1.3.2.添加书籍状态信息触发器trigger_state每创建一项书籍记录后,自动在图书状态信息表中,添加一条对应的图书状态信息;创初始触发器createorreplacetrigger_stateafterinsertbookforeachrowbegin--如何用到bnum的值----->insertintobookstate(bnum)values()end;1.3.3.删除存储过程的创建pro_del先判断图书状态State是否为”已借出”,如果是,则不能进行删除操作,与此同时,发出提示信息;如果不是,则先删除bookstate表中对应的那条记录,再将相应的图书信息记录删除。--------删除,过程Createorreplaceprocedurepro_del(bnumberINnumber(11),sayoutvarchar2(20))asNum1numberstavarchar2date1=dateBeginselectstateintostafrombookstatewherebnum=bnumber;ifsta='wait'thendeletefrombookstatewherebnum=bnumber;deletefrombookwherebnum=bnumber;say='yes';elsesay='no';endif;end;1.3.4.更新书籍存储过程的创建pro_update---更新书籍存储过程Createorreplaceprocedurepro_update(bnum1INnumber(11),bname1INvarchar2(20),writer1INvarchar2(20),publish1INvarchar2(50),page1INnumber(11),place1INvarchar2(20),)asBeginupdatebooksetbname=bname1,writer=writer1,publish=publish1,page=page1,place=place1wherebnum=bnum1;end;1.3.5.用户登录存储过程的创建pro_login--------登录Createorreplaceprocedurepro_login(mnameINvarchar2(20),mpwdINvarchar2(20),sayoutvarchar2(20))ascountnumber=0;Beginselectcount(*)intocountfromManagewhereusername=mname&&pwd=mpwd;ifsta=0thensay='yes';elsesay='no';endif;end;五、系统的实现及调试1.实现数据库的连接publicDBoracle(){try{Class.forName("oracle.jdbc.driver.OracleDriver");//oracle名称还需填写ct=DriverManager.getConnection("jdbc:oracle:thin:@10.0.0.248:1521:orcl","orcl","orcl");}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}2.系统功能的实现2.1通过在前台JSP页面中书籍信息,由Struts2的过滤器,将其数据自动封装成对应的JavaBean,在对应的Action中进行处理;main.jspmain.jspBookManage.jspBookManage.jspBookManage.jspupdatebook.jspBookManage.jspBookManage.jspBookManage.jspBookManage.jspmain.jspmain.jsp2.2.图书的添加在图书管理主界面中,录入各项图书信息,通过Struts2过滤器,在Action中进行数据的校验,若出现数据 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 等方面的错误,将错误信息写入一个HashMap集合中,并将所有出错信息的集合返回到图书管理主界面;如果数据符合要求,则向数据库图书表中增加一条记录,同时往图书状态表中也写入相应的记录;publicbooleanaddBook(Bookb){…..}2.3.图书的修改先通过查询,找到要修改的记录,点击进入图书信息修改界面,完成后,输入新的值,进行数据的修改;publicbooleanupdateBook(Bookb){try{CallableStatementcstmt=null;Stringprocedure="{callpro_update(?,?,?,?,?,?)}";cstmt.setString(1,b.getBname());cstmt.setString(2,b.getWriter());cstmt.setString(3,b.getPublish());cstmt.setInt(4,b.getPage());cstmt.setString(5,b.getPlace());cstmt.setInt(6,b.getBnum());cstmt=ct.prepareCall(procedure);cstmt.executeUpdate();returntrue;}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnfalse;}2.4.图书的删除publicbooleandeleteBook(Bookb){try{//pstmt=ct.prepareStatement("deletefrombookstatewherebnum=?");pstmt=ct.prepareCall("{callpro_del(?)}");pstmt.setInt(1,b.getBnum());//pstmt.executeUpdate();//pstmt=ct.prepareStatement("deletefrombookwherebnum=?");//pstmt.setInt(1,b.getBnum());pstmt.execute();returntrue;}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();returnfalse;}}2.5.图书的查询系统中提供了图书索引号,图书名称,作者,出版社,等多种方式的查询,并且为了方便起见,还设立通过所有字段进行模糊查询的功能;publicArrayListgetLibBooks(Bookb,intchoice){ArrayListal=newArrayList();Stringsql="select*frombookwhere";Stringstr=null;try{//按照各种查询if(choice==1){sql="select*frombookwherebnum=?";pstmt=ct.prepareStatement(sql);pstmt.setInt(1,b.getBnum());}elseif(choice==2){sql="select*frombookwherebnamelike?";pstmt=ct.prepareStatement(sql);pstmt.setString(1,"%"+b.getBname()+"%");}elseif(choice==3){sql="select*frombookwherewriter=?";pstmt=ct.prepareStatement(sql);pstmt.setString(1,b.getWriter());}elseif(choice==4){sql="select*frombookwherepublishlike?";pstmt=ct.prepareStatement(sql);pstmt.setString(1,"%"+b.getPublish()+"%");}else{sql="select*frombookwherebnamelike?ORwriterlike?ORpublishlike?";pstmt=ct.prepareStatement(sql);pstmt.setString(1,"%"+b.getPublish()+"%");//将所有信息写入publish这一栏中pstmt.setString(2,"%"+b.getPublish()+"%");//将所有信息写入publish这一栏中pstmt.setString(3,"%"+b.getPublish()+"%");//将所有信息写入publish这一栏中}ResultSetrs=pstmt.executeQuery();while(rs.next()){Bookbk=newBook();bk.setBnum(rs.getInt(1));bk.setBname(rs.getString(2));bk.setWriter(rs.getString(3));bk.setPublish(rs.getString(4));bk.setPage(rs.getInt(5));bk.setPlace(rs.getString(6));al.add(bk);}returnal;}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();returnnull;}}2.6.管理员地登录管理员必须通过身份验证才能进入书籍管理页面,对书籍的管理;publicbooleanmanagerLogin(Stringworkid,Stringpassword){try{//pstmt=ct.prepareStatement("select*frommanagerwhereworkid=?");CallableStatementcstmt=null;cstmt=ct.prepareCall("{callpro_login(?,?,?)}");cstmt.setString(1,workid);cstmt.setString(2,password);((CallableStatement)cstmt).registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);cstmt.execute();//从输出参数中获取值ResultSetrs=(ResultSet)cstmt.getObject(3);//第3个?所代表的参数ResultSetMetaDatarmd=rs.getMetaData();Stringstr=null;while(rs.next()){for(inti=0;i所有字段书籍名称著者索书号出版社  说明:查找馆藏书刊及多媒体资源等,还可以利用多种途径进行查询;查找全国高校馆藏,请使用E读

<%Stringmesflag=(String)ActionContext.getContext().get("mes");if(mesflag==null){//判断}elseif(mesflag!="ok"){%><%=mesflag%>

<%}else{%>


<%Stringmesdel=(String)ActionContext.getContext().get("mesdel");//删除书籍if(mesdel!=null){//判断删除是否成功if(mesdel.equals("ok")){%>alert("删除成功!");<%}else{%>alert("删除失败!+<%=mesdel%>");<%}}%><%ArrayListarl=(ArrayList)ActionContext.getContext().get("books");if(arl==null){out.println(".......");%>对不起!你找的内容不存在!

<%}else{//-----------table%>索书号书名作者出版社页数状态修改删除详细信息<%//操作1操作2Iteratorit=arl.iterator();DBmysqldms=newDBmysql();Stringstate="";Bookbk=null;while(it.hasNext()){bk=(Book)it.next();//每取一个值,就显示一个try{if(dms.isBookwait(bk)==true){//这里调用了DBmysql中的方法state="在馆";}else{state="已借出";}}catch(BookNotFindExceptione){}%><%=bk.getBnum()%><%=bk.getBname()%><%=bk.getWriter()%><%=bk.getPublish()%><%=bk.getPage()%><%=state%>name="number">name="bfd.bnum">&name=<%=bk.getBname()%>"target="_blank"title="书籍详情">详细信息<%}//---------------table%>

本文档为【Oracle课程设计--图书馆书籍管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
立即下载

你可能还喜欢

最新资料
资料动态
专题动态
个人认证用户
平平
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:教育学
上传时间:2021-01-05
浏览量:8