数据库系统课程设计报告_第1页
数据库系统课程设计报告_第2页
数据库系统课程设计报告_第3页
数据库系统课程设计报告_第4页
数据库系统课程设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库系统课程设计院(系): 计算机工程学院 专业: 计算机科学与技术 姓名: 班级: 学号: 题目: 起迄日期: 2014-12-15 到 2014-12-26 设计地点: 计算机工程学院机房 指导教师: 1、 概述1.1系统概叙本程序主要是管理图书资料的借阅的,适用于图书馆对图书的管理,可以完成新近图书的增删改查以及学生或者老师对图书的借阅管理。界面管理比较简单,进入后可以直接进行所需要的图书管理以及图书区域的管理、图书资料类型的管理、图书资料的状态等等。程序中一共用到了5个不同的表格,分别为图书基本信息表(bookinfo),图书类别及状态表(booktype),读者基本信息表(read

2、erinfo),图书借阅信息表(bookborrowinfo)以及管理员表(login)。这5个表有基本的联系,其中只有管理员表是单独的一个登录管理表,其余四个表在程序中都是链接使用的。比如bookinfo表中只有表编号(id),图书编号(book_id),书名(book_name),图书作者(author),图书价格(price),图书出版社(press)6个属性,图书添加的其余属性例如图书状态,图书类别,图书存储区域都是在图书状态表(booktype)中存放的,因而在图书添加中就加入了这两个表的多表连接输入。本程序主要是在网页中实现的,因而用到了刚才在生产实习中用到的jsp,程序编写中主要

3、用到了mvc模板,一个程序中主要分成了四个包:bean(主要存放表中属性的类),jdbc(主要存放了java与数据库连接的类),dao(dao中主要存放本程序实现所用到的主要方法),servlet(主要存放了jsp与数据库连接且对程序主要控制的方法)。1.2开发环境简介本程序开发用到了eclipse平台,数据存放用到了sqlserver平台,eclipse是用纯java写的,是一个十分优秀的用于开发java, j2ee的eclipse插件集合,eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。用它我们可以在数据库和javaee的开发、发布以及应用程序服务器的整合

4、方面极大的提高工作效率。它是功能丰富的javaee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支.eclipse 是一个十分优秀的用于开发java, j2ee的 eclipse 插件集合,eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。eclipse目前支持java servlet,ajax, jsp, jsf, struts,spring, hibernate,ejb3,jdbc数据库链接工具等多项功能。可以说eclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2、 需求分析2.1开发背景在学校中,一个图书馆会有上万本书

5、,因而图书资料管理就应景而生了。对这些图书进行必要的管理,对于借阅者和图书管理者都是很大的帮助。现在市面上的图书管理系统有很多,我也不了解其中有什么功能,但是如果说有什么改进之处,只能说这个软件是具体问题具体分析,没有一个公用的图书管理系统而让所有的图书资料管理者都适用。并且,专业的图书资料管理系统不适合我们学生学习编写,我们无法在短时间内编写出大量高水平的管理系统,没有能力也没有条件,适合小规模练习的管理系统很少,加之我们现在正好学习了网页jsp编程以及连接oracle数据库,为了练习最近所学习的知识,就编写了这个图书资料管理系统,所用到的功能都是最近生产实习中所教的。2.2开发目的由于没有

6、小型的数据库供我们学习,加之最近的生产实习实训学习了jsp网页编程以及连接oracle数据库,为了练习最近所学习的东西,所有就用jsp编写了这个图书资料管理系统。虽然不是很正规,但是最近所学到的主要功能都用到了。2.3功能需求本程序主要完成了对图书资料基本信息的添加,查询,修改,删除;对读者信息的添加,查询,删除,修改;对图书基本信息以及图书状态的两表连接添加,查询,删除,修改;对图书基本信息,图书借阅状态,读者信息三表连接的查询功能。2.4数据需求程序功能一共有三部分,因而数据共有三部分组成:图书基本信息的输入为:图书的基本信息,如编号价格等,以及图书目前的存储区域。读者基本信息为:读者的学

7、号工号,姓名,性别和联系电话,其中读者的学号工号作为外键去连接其他的表。图书类别表:作为图书的存储区域以及图书类别图书状态的存储,图书的类别决定了图书的存放区域,以图书的编号作为外键去连接图书基本信息表,在图书添加的功能中一起与添加到图书的状态栏,这个表对图书的借阅起到关键性的作用,是连接几项功能的纽带。以上给基本的三部分分层,决定了三项基本功能,其中,还有一个图书借阅表,这个表连接了两个表,以图书编号和员工学号工号作为外键,去连接了两个表,一起提示图书的借阅信息,其中的借阅信息是在图书类型表中确定的,因而图书的类型表是很重要的,而光有图书的类型还不够,还必须有图书的借阅人才能完全确定图书的借

8、阅信息。所以,又以读者的学号工号连接了图书的读者基本信息表,在一起查询图书的借阅信息的时候可以一起查处,让管理者可以一起显示出借阅的所有信息。此功能数据一共就分为这几个部分,要求的数据量不是很大,但是数据之间的联系很是重要,是此功能的重点。3、 系统设计3.1总体设计图书资料管理系统总体设计流程图:图书资料管理系统管理员登陆失败则重新登陆成功程序主界面图书的借阅管理读者的基本信息管理图书基本信息管理所有借阅信息查询图书的借阅归还读者基本信息添加读者基本信息删除基本信息查询修改图书基本信息删除基本信息查询修改图书基本信息添加4、 数据库设计4.1概念设计(1) 图书资料基本信息实体:名称作者编号

9、图书资料基本信息状态存储区域 类型出版社价格(2) 读者基本信息实体:读者信息性别电话姓名学号(3) 图书借阅管理实体:图书借阅管理借阅状态归还日期借阅日期读者学号图书编号(4) 管理员登录实体:管理员登陆管理密码用户名(5)总体e-r图借阅读者图书资料n 14.2逻辑设计(1) 图书资料基本信息表(bookinfo):数据项名称类型长度数据项说明备注id表序号number默认表的id序列主键bbh图书编号varchar20后置编号notnullbname图书名varchar50书名称notnullbzz作者varchar20作者无bjg价格varchar20价格无bcb出版社varchar5

10、0图书出版社无(2) 读者基本信息表(readerinfo):数据项名称类型长度数据项说明备注id表序号number默认表的id序列主键 dname读者名varchar20读者姓名notnulldsex性别varchar10读者性别无dxh学号/工号varchar20读者号notnulldtel电话varchar20联系电话无(3) 图书借阅表(bookborrowinfo):数据项名称类型长度数据项说明备注id表序号number默认表的id序列主键bbh图书编号varchar20后置编号notnulldxh学号varchar20读者学号notnulljtime借阅日期varchar20借书日

11、期无htime归还日期varchar20预定归还无bzt借阅状态varchar20借阅后状态notnull(5) 管理员登陆表(login)数据项名称类型长度数据项说明备注id表序号number默认表的id序列主键username用户名varchar20登陆用户名notnullpwd密码varchar20登陆密码notnull5、 详细设计(1) 登陆界面:程序运行刚开始时看到的第一个界面是管理员的登陆界面,页面会提示让管理员输入用户名和密码登陆到主界面。此界面中,用了javascript语言写了一个不能为空的alert()弹出语句:public void actionperformed(ac

12、tionevent e) if(e.getsource()=enter)db db = new db();string id = name.gettext();/string pwd = pwd.gettext();string sql = select * from login;int m = 0;resultset rs = db.select(sql);try while(rs.next()if(rs.getstring(username).equals(name.gettext() & rs.getstring(pwd).equals(pwd.gettext()joptionpane.

13、showmessagedialog(ss,登录成功);zjm mm = new zjm();mm.setvisible(true);m = 1;if(m = 0)joptionpane.showmessagedialog(ss,用户名或密码错误,请重新登录!); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace();joptionpane.showmessagedialog(ss,登陆失败);如果输入的用户名和密码与数据库中的数据对应一致(当然是防止sql注入的无bug代码),会弹出一个提示界

14、面,提示已经登录成了,自动跳转到主界面中。这一部分的设计也是用javascript所写的,具体代码就不写了,仅仅是一个跳转。所用到的sql语句如下列出:if(rs.getstring(username).equals(name.gettext() & rs.getstring(pwd).equals(pwd.gettext()(2) 主界面:主界面主要显示了本程序的所有功能,也是不程序的主显示区,共有3个主要功能:图书资料管理,读者管理和图书借阅管理。三个功能都是用跳转接完成的,内部置入了method选择要进入的servlet中的方法。这部分没有什么过多的介绍。(3) 图书信息管理界面: 进入

15、图书信息管理功能模块后,就可以看到图书管理的基本功能,添删改查。每项功能都对应了唯一的一个jsp,其中向servlet中传值还是用了method方法,进入后会提示输入要查询的图书编号,查询的主要传值方法就是图书的编号,具体编码如下(以修改为例):public class tsxg extends jframe implements actionlistenerstatic tsxg ss;font f = new font(楷体,font.bold+font.italic,20);jpanel panel = new jpanel();jlabel label = new jlabel(图书资

16、料修改);jlabel label2 = new jlabel(请输入您要修改的图书编号:);jtextfield tbh = new jtextfield();jlabel label12 = new jlabel(图书名:);jtextfield name = new jtextfield();jlabel label3 = new jlabel(图书编号:);jtextfield bh = new jtextfield();jlabel label4 = new jlabel(作者:);jtextfield zz = new jtextfield();jlabel label5 = ne

17、w jlabel(价格:);jtextfield jg = new jtextfield();jlabel label6 = new jlabel(出版社:);jtextfield cb = new jtextfield();jlabel label7 = new jlabel(类型:);jtextfield lx = new jtextfield();jlabel label8 = new jlabel(存储区域:);jtextfield cc = new jtextfield();jlabel label9 = new jlabel(图书状态:);jtextfield zt = new j

18、textfield();jbutton enter1 = new jbutton(确认);jbutton exit1 = new jbutton(重置);jbutton enter = new jbutton(修改);jbutton exit = new jbutton(返回);public tsxg()super(登录界面);this.setresizable(false);enter1.setbounds(180,120,80,20);exit1.setbounds(320,120,80,20);enter.setbounds(180,500,80,20);exit.setbounds(3

19、20,500,80,20);panel.add(enter);panel.add(exit);panel.add(enter1);panel.add(exit1); panel.setlayout(null);this.add(panel);label.setbounds(250,30,150,25);label.setfont(f);panel.add(label);label2.setbounds(100,70,200,25);panel.add(label2); tbh.setbounds(290,70,200,25);panel.add(tbh);label12.setbounds(1

20、35,170,100,25);panel.add(label12); name.setbounds(265,170,130,25);panel.add(name);label3.setbounds(135,210,100,25);panel.add(label3); bh.setbounds(265,210,130,25);panel.add(bh);label4.setbounds(135,250,100,25);panel.add(label4); zz.setbounds(265,250,130,25);panel.add(zz);label5.setbounds(135,290,100

21、,25);panel.add(label5); jg.setbounds(265,290,130,25);panel.add(jg);label6.setbounds(135,330,100,25);panel.add(label6); cb.setbounds(265,330,130,25);panel.add(cb);label7.setbounds(135,370,100,25);panel.add(label7); lx.setbounds(265,370,130,25);panel.add(lx);label8.setbounds(135,410,100,25);panel.add(

22、label8); cc.setbounds(265,410,130,25);panel.add(cc);label9.setbounds(135,450,100,25);panel.add(label9); zt.setbounds(265,450,130,25);panel.add(zt);this.setsize(600,600);setlocationrelativeto(null);/居中 放置this.setresizable(true);this.setdefaultcloseoperation(jframe.exit_on_close);this.setvisible(true)

23、;enter.addactionlistener(this);enter1.addactionlistener(this);exit.addactionlistener(this);exit1.addactionlistener(this);overridepublic void actionperformed(actionevent e) / todo auto-generated method stubif(e.getsource() = enter1)db db = new db();string sql = select * from bookinfo where bbh = + tb

24、h.gettext() +;resultset rs = db.select(sql);try if(rs.next()name.settext(rs.getstring(bname);bh.settext(rs.getstring(bbh);zz.settext(rs.getstring(bzz);jg.settext(rs.getstring(bjg);cb.settext(rs.getstring(bcb);lx.settext(rs.getstring(blx);cc.settext(rs.getstring(bcc);zt.settext(rs.getstring(bzt);if(e

25、.getsource() = exit1)tbh.settext();if(e.getsource() = enter)db db = new db();string sql = update bookinfo set bname=+ name.gettext() +, bbh = + bh.gettext() +,bzz=+ zz.gettext() + +,bjg=+ jg.gettext() +,bcb=+ cb.gettext() +,blx=+ lx.gettext() +,bcc=+ cc.gettext() +, +bzt=+ zt.gettext() +;int p = 0;p = db.update(sql);if(p0)joptionpa

温馨提示

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

评论

0/150

提交评论