数据库课程设计文档_第1页
数据库课程设计文档_第2页
数据库课程设计文档_第3页
数据库课程设计文档_第4页
数据库课程设计文档_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库系统原理课程设计报告题目名称:图书管理系统班级:计093-2组长学号:200925503201姓名:李帅成绩:组员学号:200925503235姓名:周福智成绩:组员学号:200925503249姓名:陈春茹成绩:2011年7月14日第一章引言本设计为一个基本的图书管理系统,系统对图书馆中常见的借书、还书、预定等活动以及相关的读者和管理员等基本信息进行管理。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成借书、还书、预定管理的全过程,包括读者的增添、删除、修改和查询,新书入库、借出图书的录入、统计与查询,以及库存的统计等。经过实际使用证明,本文所设计的图书管理系统可以满

2、足图书馆读者、图书管理方面的需要。通过对系统的初步调查,明确了系统开发的目标为:按照管理信息系统的原理和方法,采用成熟、先进的信息技术和手段,支持图书馆读者、图书管理工作的全过程,加强图书管理活动中的各种信息资源的管理和应用,实现图书管理现代化,及时、准确地提供各种信息。第二章系统分析2.1 现行系统的总目标通过对图书馆工作流程的研究和详细地询问有关人员,对图书馆的各个方面的工作流程有了具体的了解,经过和图书馆的相关人员协商后,最终确定在图书管理系统中要具有以下几方面的内容:主要实现的功能:管理员:5.5 读者类型的增加、查询、修改、删除6.6 读者的注册、查询、修改、删除7.7 图书类型的增

3、加、查询、修改、删除8.8 图书的入库、查询、修改、删除9.9 图书预订记录的查看10.10 图书的借阅和换回读者:1.4.0 图书的查询、预订2.4.0 读者密码的修改3.4.0 预订记录的删除第三章系统概要设计3 数据库设计数据库设计是开发数据库及其应用系统的技术,也是信息系统开发和建设的重要组成部分。具体的说,数据库设计是要在一个给定的应用环境中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式,建立数据库及其应用系统,满足用户各种信息需求。在系统的数据库设计中,首先对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。本系统用实体-联系

4、图(简称E-R图)来描述系统的概念模型。E-R图由实体、属性、联系三部分组成,其符号如图4.6所示:3 实体描述本系统中所涉及的实体有6个,具结构如下:管理员(管理员姓名、管理员密码、类型号)读者(借书证号、姓名、性别、密码、单位、发证日期、所属类型)图书(图书编号、类型号、图书名称、出版作者、剩余、单价、总量、进库日期、状态、备注)(状态有0、1两个值,0代表没有被预订,1代表被预订)管理员类型(类型号、类型名称)读者类型(类型号、类型名、借期、借阅册数)图书类型(类型号、类型名)五个关系:借阅记录(编号、图书编号、借书证号、借阅日期、归还日期、借阅次数、状态)(状态有0、1、2三个值,0代

5、表未还,1代表正常还回,2代表超期)图书预定(编号、借书证号、图书编号、预订日期、状态)(状态有0、1两个状态,0代表该预订的书没有被取走,1代表该预定的书已经被取走)读者和读者类型(读者类型、读者类型类型名)管理员和管理员类型(管理员类型号、管理员类型类型号)图书和图书类型(图书类型名、图书类型类型名)3 联系描述本系统中实体之间有5个联系,具关系如下:(1)图书预订关系:读者与图书之间的关系是1:N,因为一个读者可以预订多本图书,一本图书只能被一个读者预订;(2)图书借阅关系:读者与图书的关系是1:N,因为一个读者可以借阅多种图书,但一本图书只能被一个读者借阅;(3)管理员与管理员类型:关

6、系是N:1,因为一个管理员只能对应一个类型,一个类型可以对应多个管理员;(4)读者与读者类型:关系是N:1,因为一个读者只能对应一个类型,一个类型可以对应多个读者;(5)图书与图书类型:关系是N:1,因为一个图书只能对应一个类型,一个类型可以对应多个图书;W.F号零Li:三注三专ZH""ar.azlezha.r<ztetsiM?AceriVEriszlezkararters''vr;a*!*SlUHfMlflrfl«WLLI_JJ次,室育团还圜在二二_一;-m*我iu:才串看#<fi2>lE.-±:srfi1),let?

7、5-ffrDatcDa-=I!&"*£*?i2>I1=二"一与一苒朽«芒黑名牛社W3TTM嵌青芸余餐a.w工二K_±H二至宜毙襄3r'/urijLtlcEKfl.tfo.E-trilflVariable匚hurH::s«t1-i亮”*火器匹f:.二二已.t二E亡二二1;一:.;-Idin:ifivr.l;二,;工,晁:±*,片=1ErlL;实体关系图第四章系统详细设计数据库的逻辑设计数据库的逻辑设计的任务就是把概念结构设计阶段的基本E-R图转化为与选用具体机器上的DBMS产品所支持的数据模型相符合的逻辑

8、结构,首先要实现的是E-R图关系模型的转化。而为此要解决的问题是如何将实体和实体之间的联系转化为关系模式,如何确定这些关系模式的属性和码。对于实体,将每个实体转换为一个关系,实体的属性即为关系的属性,实体的码即为关系的码。对于实体间的联系,可以分成三种情况:若实体间的联系是1:1,可以在两个实体转换成的两个关系中任意一个关系的属性中加入另一个关系的码。若实体间的联系是1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。若实体间的联系是n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。数据库的实现按照数据字典中的数据元素说明确定每个

9、数据项的类型和长度,使每个关系都对应一个数据库表:1)读者表(reader)主码字段代码字段名称数据类型长度小数位数可否为空*CerlD借书证号integerNotnullreadername姓名Varchar15Notnullsex性别Varchar2password密码Varchar15unit单位varchar15acctime发证日期datetimereadertype所属类型varchar102)读者类型表(readertype)主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号varcharNotnullTypename类型名Varchar10NotnullDat

10、elimit借期integerNotnullborrowlimit册数integerNotnull3)管理员表(adminer)主码字段代码字段名称数据类型长度小数位数可否为空*username姓名varchar15Notnullpassword密码Varchar25Notnulladmintype类型号integer4)管理员类型表(adminertype)主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号IntegetNotnullTypename类型名Varchar10Notnull5)图书表(book)主码字段代码字段名称数据类型长度小数位数可否为空*Book_id图

11、书编号IntegerNotnullType图书"1varchar15Book_name图书名称varchar25NotnullBook_author出版作者varchar15Publisher出版社varchar30Price单价Integer0Sum总量Integer2have剩余量Integerin_time:进库时间DatetimeFlag状态IntegerRemarks备注varchar1006)图书类型表(booktype)主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号IntegetNotnullTypename类型名Varchar15Notnull7

12、)图书借阅表(borrowrecord)主码字段代码字段名称数据类型长度小数位数可否为空*ID编RIntegetNotnullBOOK_ID图书号IntegetNotnullCERID借书证号IntegetNotnullborrowTime借阅时间IntegetNotnullreturnTime还书时间datetimeNotnullSum借阅次数IntegetFlag状态Integet8)图书借阅表(bookrecord)主码字段代码字段名称r数据类型长度小数位数可否为空*ID编pIntegetNotnullBOOK_ID图书号IntegetNotnullCERID借书证号IntegetNot

13、nullbookTime预订时间datetimeNotnullFlag状态IntegetNotnull4.3系统角色活动设计管理员功能4.4功能逻辑设计读者/管理员注册点击审掰管工棚G堆护7读者/管理员信息修改密码修改7丸魁新书入库我到图书查询图书维护图书预订借书7作前偌匐记录/还书关于预订、借书、还书、删除预订记录的数据库操作说明1、预订:预订的前提条件是该书的剩余量为0,切该书没有被预订过(目前一本书只能被预订一次)。否则点击预订,则会提示相应的信息。预订时分别对数据库中的Book表和BookRecord表进行操作,在Book表中把Flag的值设为1,表示该书已经被预订了,同时在BookR

14、ecord表中插入一个相关的记录。2、删除预订:删除预订是预订的逆过程,首先删除BookRecord表中的相关的记录,然后把Book表中的相应的记录的Flag的值设置为0。3、图书借阅:图书借阅分别和3个表有关。首先借阅之前要查询,这本书是不是被该读者预订过,若是,则把预定表中的Flag的值设置为1,代表该预订的书已经被取走,再查看该书的剩余量是不是1,若是1则提示此书已被预订,如果不是还得统计该读者现在借了多少书,书的数量是不是等于他的类型规定的借阅册数,如果是,提示借阅册数已满,如果不是,则在BorrowRecord表中插入一条记录,最后书的剩余量减1。4、还书还书时首先将现在的日期和Bo

15、rrowRecord表中的换书日期做比较,如果现在的日期在表中的还书日期的后面,则说明这本书超期了,这时就把Flag设置为2,代表超期,如果没有超期,则设置为1,代表该书已经被换。同时在Book表中的对应的记录的Have加1。说明:这四个操作都涉及到了多个表的操作,为了保证数据的一致性,均采用了事物,如果一系列操作中的一个不成功,那么就回滚。(1)管理员模块:读者模块:人机界面的设计用户界面是指软件系统和用户交互的接口,良好的用户界面往往可以提高用户使用系统的热情,并刺激他们的积极性。登录界面设计为了保证系统的安全性,进入系统之前必须经过必要的安全性,简洁、清晰、友好是此设计的风格,如图所示:

16、用户登录界面如果输入的用户名或者密码错误,就会弹出下面的窗口,见图所示:错误信息如果输入的用户名或者密码正确,就会弹出下面的窗口,见图所示:提示信息系统基本信息界面设计输入正确的用户名和密码后,即进入系统。系统的基本操作界面分读者和管理员:1、读者相关界面按书号查询按名字查间ID;4用户名:李帅我的信息读者主界面读者预订管理界面按书号查找图书(按书名查找和它类似)年JWA乂圜与噂5lffl。可同现33图书模糊查询界面读者我的信息界面读者修改我的信息界面2、管理员相关界面-J言理声界面管理员主界面类型管理主界面类型添加界面类型查询界面类型详细信息界面类型修改界面查看全部界面预订管理界面借阅管理界

17、面图书管理界面图书类型管理界面读者管理界面余下没有列举的界面基本和类型管理的界面相同,这里就不截图了第五章小结(分个人)概述图书管管理信息系统是一个典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完善性强,数据安全性好的库,而对于后者则要求应用程序功能完善,易使用等特点,经过考虑,我使用JAVA开发,因为JAVA用起来比较方便,而且之前有过用JAVA11接数据库的经验。系统的功能经过半个月左右的设计和开发,图书管理系统基本实现了之前确定的功能,基本满足对图书的管理系统的特点本系统的每一个管理子系统均做到内容详备合理

18、、界面安排真观、查询检索功能强大。采用数据累计保存,满足用户对历史资料的查询等优点。系统登录,需要使用者键入用户名和口令,以防止未经授权的用户查询修改数据。系统开发的体会李帅200925503201:经过6天的努力,终于把数据库课程设计做完了。终于可以送一口气了,尽管结果还是未知,但是过程比结果重要,通过课程设计,不仅使自己更加熟悉了课堂上学到的东西,而且还学到了很多课堂上没有学到的东西。在开始写代码之前,就想要往程序里面加触发器、加事物,但是自己对触发器一窍不通,对事物也是一知半解。为了加上触发器,去网上参考了很多例子,逐渐了解了触发器的一些写法,最终写出了一个insert触发器和一个del

19、ete触发器。事物对于这次课程设计很重要,因为在预订、删除预订、借书、还书四个过程中都涉及了多个表的操作,为了保证数据的一致性,就必须用到事物。最后通过一个java的视频,学会了使用事物。并且实现了预订、删除预订、借书、还书的4个事物,同时也更加熟悉了数据库的基本操作语言。代码的编写参照了尚学堂网上商城的代码编写的方式,采取了面向对象的策略,把各种需要用的功能都封装成了不同的方法,而且分成了后台和前台两个部分,两个全部编写完成后进再进行集成测试。通过接近1万行代码的编写,使自己更加深刻的理解了参考代码中分层封装的思想,使自己编写代码的水平有了些还有一个就是团队的合作。这次课程设计的数据库是大家

20、共同讨论确定的,功能也是共同讨论确定的,所有功能都确定后大家进行了分工,周福智做管理员和管理员类型的部分,包括后台和前台,陈春茹做读者和读者类型的部分,包括前台和后台,我则做图书、图书类型、预订和借阅的部分,也是前台和后台。因代码的编写同意要求是参照晚上商城的项目的编写风格,这个对我来说不太难,因为之前的软件工程的课程设计就是参照那个写的,思想上已经很容易接受了。但是对其余两个人来说那种思想还是很难接受的。但是最终他们都把代码写了出来,按着参考代码的风格,并且代码质量非常高,他们肯定付出了很多的努力。而且当我纠结图书预订、借阅、还书的限制条件时,其他人总是能展开头脑风暴式的讨论,把自己能想到的

21、全部说出来,最终我们确定了每个活动对应的逻辑,并用代码实现了,这些都让我非常感动,这就是合作的力量,这就是团队的力量。通过课程设计,让我深深地明白了一个道理,世上无难事只怕有心人,遇到困难,只要肯干,就一定能把苦难解决。周福智200925503235由于本系统开发时间的仓促和本人对开发工具的认识水平有限,在没有真正理解需求之前就匆忙开始制定开发计划,设计数据库表的的结构并进行一些表单窗口的设计,造成了程序和文档有差错和出入。在修改并完善E-R图后,再重新进行数据库表的结构和表单、菜单、报表的设计修改,造成了时间的浪费,反而得不偿失。而且图书预订一种书只能一个人预订,不能实现多人预订同一种书。同

22、时在还书等需要查询的界面,没有对查询结果为空时的提示。还有就是界面没有经过美化,很不人性化,在做触发器的时候,刚开始想的很简单,就是一个简单的逻辑集合,整体完成受局部条件的约束,局部条件要是完成不了,那么触发器里面的所有语句全部不执行,同时在考虑触发器里面执行语句的时候,发现一个系统的好坏在于它的细节体现的方面,比如:再删除一本图书的信息的时候必须先删除这本书的借阅信息,预订信息,借阅记录,然后才能删除概述的全部信息,同时发现,如果要删除一个读者的信息,执行过程要比删除一本书得信息要复杂的多,首先得先改变自己现预订书的状态(恢复没有预定的状态),触发器里面的事物就会再多一点,还有就是敲代码的时

23、候得细心,代码的拼写错误很容易发生,但是改掉这个错误就是非常纠结,真的非常纠结,但是还是在同学的帮助下改了出来。同时觉得团队合作对小组的效率的影响是非常关键的,甚至起着决定性的作用,看到好多同学小组内的纷争多起,觉得应该首先处理好小组关系,然后再确定分工,毕竟小组内每个同学都有自己的长处,这个会跟快跟好的处理所遇到的实际的问题,遇到一些需要建议和见解的问题小组内部的商议非常重要,关键时刻的一点小小的建议可能会改变真个软件体系的设计方案,因为软件的好坏总是从细节方面体现出来的。最后通过数据库课程设计的过程中发现我们所掌握的知识是那么的贫乏,以至于再设计的时候要考虑到在代码执行过程中是否能具体的实

24、现,还有在体系结构和框架设计的时候的考虑方面的欠缺,觉得应该多一些练习才是,我觉得最重要的是细节,不管哪个方面,细节是造就完美的重要因素。陈春茹200925503249在这次课程设计中,经过讨论了整个系统要实现的内容,抽象好数据库后,经过分工,我主要抽象了两个表,有读者,读者类型。写了相关的接口,并且实现,及方法的封装。然后,又写了相关的界面,并且实现了界面的增删改查的功能。在此次管理信息系统的开发的过程中,遇到了很多问题。比如,最初抽象数据库确定好实体后,对实体的属性确定时,按照自己的想象对属性的数据类型进行了确定,但是在后来实现时,数据库连接后,没办法实现数据的操作,最后牵一发而动全身,改

25、了很多东西,在这个过程中,浪费了很多的时间,也明白了在真正动手做之前,应该对系统分析透彻,思考严谨,尽量减少不必要的错误。在后来的界面的设计中,对按钮的事件监听,对事件的处理不是很完整,最后在同学的帮助下,终于找到了遗漏点,也逐渐明白了团队的协作的重要性。通过这次的课程设计,对这两年的学习进行了全面的回顾与总结。发现自己真正掌握的知识很有限,需要学的东西太多太多,在以后的学习中,我们眼界不至于只局限于一个特定的框架体。对数据库的认识也有了一定的改变,有了一定的认识。致谢在本次毕业设计中,指导老师无论在理论上还是在实践中,都给予我很大的帮助,为我们提供了许多不可多得的珍贵意见,还有同学帮我解决了

26、很多的问题,指出了设计的不足,并且提出了很多很可行的建议。为此,我由衷的对老师的悉心指导和同学的帮助表示深深的感谢!附录:1、图书预订、删除预订、借书、还书代码packagenmg.ls.util;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.Statement;importjava.sql.Timestamp;importjava.util.Date;importjava.util.Iterator;importjava.util.List;importjavax.swing.JOptionPane;

27、importnmg.ls.book.Book;importnmg.ls.book.BookMgr;importnmg.ls.bookrecord.BookRecord;importnmg.ls.bookrecord.BookRecordMgr;importnmg.ls.borrow.Borrow;importnmg.ls.borrow.BorrowMgr;importnmg.ls.db.DB;importccr.reader.Reader;importccr.readertype.ReaderType;importccr.readertype.ReaderTypeMgr;publicclass

28、UtilSQLServerDAOimplementsUtilDAOOverridepublicvoidyvDingBook(Readerreader,Bookbook)/TODOAuto-generatedmethodstubBookMgrbookMgr=newBookMgr();BooktempBook=newBook();BookRecordMgrbookRecordMgr=newBookRecordMgr();List<Book>book_List=null;BorrowMgrborrowMgr=newBorrowMgr();Connectionconn=null;State

29、mentstmt=null;book_List=bookMgr.selectByID(book.getBook_id();Iterator<Book>i=book_List.iterator();while(i.hasNext()tempBook=(Book)i.next();if(book.getHave()>0)JOptionPane.showMessageDialog(null,"此书有剩余,您可以直接借取!");elseif(bookRecordMgr.whetherBook(book.getBook_id()JOptionPane.showMes

30、sageDialog(null,“此书已被预定");elseStringsql1="insertintobookrecordvalues("+book.getBook_id()+","+reader.getCerID()+",'"+newTimestamp(newDate().getTime()+"',"+0+");"System.out.println(sql1);Stringsql2="updatebooksetflag=1wherebook_id=&qu

31、ot;+book.getBook_id()+""tryconn=DB.getConn();conn.setAutoCommit(false);stmt=DB.getStatement(conn);stmt.addBatch(sql1);stmt.addBatch(sql2);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,“预订成功!”);catch(SQLExceptione)e.printStackTrace();tryif(conn!=null)

32、conn.rollback();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,“预订失败!");catch(SQLExceptione1)/TODOAuto-generatedcatchblockel.printStackTrace();finallyDB.close(stmt);DB.close(conn);OverridepublicvoidBorrowBook(Readerreader,Bookbook)/TODOAuto-generatedmethodstubBookMgrbookMgr=newBook

33、Mgr();BooktempBook=newBook();List<Book>book_List=null;ReaderTypetype=null;BookRecordMgrrecordMgr=newBookRecordMgr();book_List=bookMgr.selectByID(book.getBook_id();List<ReaderType>type_List=null;Iterator<Book>i=book_List.iterator();while(i.hasNext()tempBook=(Book)i.next();Connection

34、conn=null;Statementstmt=null;ReaderTypeMgrtypeMgr=newReaderTypeMgr();BorrowMgrborrowMgr=newBorrowMgr();type_List=typeMgr.selecetByreadername(reader.getReadertype();Iterator<ReaderType>j=type_List.iterator();while(j.hasNext()type=(ReaderType)j.next();Timestampts=newGetReturnTime().getReturnTime

35、(type.getDatelimit();if(typeMgr.getBorrowLimit(reader.getReadertype()<=borrowMgr.getBorrowSum(reader.getCerID()JOptionPane.showMessageDialog(null,“该学生借阅册数已满!");elseif(tempBook.getHave()<=0)JOptionPane.showMessageDialog(null,“此书没有库存,您可以预定!");elseif(tempBook.getHave()=1&&tempBo

36、ok.getFlag()=1)JOptionPane.showMessageDialog(null,"此书已被预定!");elseStringsql1="insertintoborrowrecordvalues("+book.getBook_id()+","+reader.getCerID()+",'"+newTimestamp(newDate().getTime()+"','"+ts+"',"+0+",1"+")

37、;"System.out.println(sql1);Stringsql2="updatebookrecordsetflag=1wherebook_id="+book.getBook_id()+"andcer_id="+reader.getCerID();Stringsql3="updatebooksethave=have-1wherebook_id="+book.getBook_id()+"andflag=0"System.out.println(sql2);tryconn=DB.getConn();c

38、onn.setAutoCommit(false);stmt=DB.getStatement(conn);if(recordMgr.whetherHaveBookRecord(book.getBook_id(),reader.getCerID()stmt.addBatch(sql1);stmt.addBatch(sql2);stmt.addBatch(sql3);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,"借书成功!");elsestmt.addB

39、atch(sqll);stmt.addBatch(sql3);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,"借书成功!");catch(SQLExceptione)e.printStackTrace();JOptionPane.showMessageDialog(null,"借书失败!");try(if(conn!=null)conn.rollback();conn.setAutoCommit(true);)catch(SQLE

40、xceptione1)/TODOAuto-generatedcatchblocke1.printStackTrace();finallyDB.close(stmt);DB.close(conn);OverridepublicvoidReturnBook(Borrowborrow)/TODOAuto-generatedmethodstubBookMgrbookMgr=newBookMgr();BooktempBook=newBook();List<Book>book_List=null;ReaderTypetype=null;List<ReaderType>type_Li

41、st=null;Connectionconn=null;Statementstmt=null;newTimestampnow=newTimestamp(newDate().getTime();TimestampreturnDate=Timestamp(borrow.getReturnTime().getTime();Stringsql1="updateborrowrecordsetflag=1wherebook_id="+borrow.getBookID()+"andcer_id="+borrow.getCerID()"Stringsql2=&

42、quot;updateborrowrecordsetflag=2wherebook_id="+borrow.getBookID()+"andcer_id="+borrow.getCerID()+;Stringsql3="updatebooksethave=have+1wherebook_id="+borrow.getBookID()+""try(conn=DB.getConn();conn.setAutoCommit(false);stmt=DB.getStatement(conn);if(now.after(returnD

43、ate)stmt.addBatch(sql2);stmt.addBatch(sql3);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,”还书成功!");elsestmt.addBatch(sql1);stmt.addBatch(sql3);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,”还书成功!");catch(SQLExc

44、eptione)e.printStackTrace();tryif(conn!=null)conn.rollback();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,“还书失败!");catch(SQLExceptione1)/TODOAuto-generatedcatchblocke1.printStackTrace();finallyDB.close(stmt);DB.close(conn);)OverridepublicvoiddeleteYvDingBook(BookRecordrecord)/TOD

45、OAuto-generatedmethodstubConnectionconn=null;Statementstmt=null;Stringsql1="deletefrombookrecordwherebook_id="+record.getBookID()+"andcer_id="+record.getCerID();Stringsql2="updatebooksetflag=0wherebook_id="+record.getBookID();System.out.println(sql1);tryconn=DB.getConn(

46、);conn.setAutoCommit(false);stmt=DB.getStatement(conn);stmt.addBatch(sql1);stmt.addBatch(sql2);stmt.executeBatch();mit();conn.setAutoCommit(true);JOptionPane.showMessageDialog(null,“删除成功!”);catch(SQLExceptione)e.printStackTrace();tryif(conn!=null)conn.rollback();conn.setAutoCommit(true);JOptionPane.

47、showMessageDialog(null,“删除失败!");catch(SQLExceptione1)/TODOAuto-generatedcatchblocke1.printStackTrace();finallyDB.close(stmt);DB.close(conn);)2、数据库创建代码:createdatabaseDBDesignuseDBDesigncreatetablebooktypetype_idintegeridentitytype_namevarchar(15).(1,1),primarykeycreatetablebook(book_idintegerpri

48、marykeytypevarchar(15),book_namevarchar(25),book_authorvarchar(15),publishervarchar(30),pricemoney,sumInteger,haveInteger,in_timeDatetime,flaginteger,remarksvarchar(100),foreignkey(type)references)identity(1,1),booktype(type_name)createtableadmintype(type_idintegerprimarykeyidentitytype_namevarchar(

49、10),).(1,1),createtableadmin(usernamevarchar(15)primarykey,passwordvarchar(25),admintypeinteger,foreignkey(admintype)referencesadmintype(type_id)一createtablereadertype(type_idintegeridentity(1,1),type_namevarchar(10)primarykey,datelimitinteger,borrowlimitinteger,)createtablereader(cerIDintegerprimarykeyidentityreadernamevarchar(15),sexvarchar(2),passwordvarchar(15),unitvarchar(15),acctimeDatetime,readertypevarchar(10),foreignkey(readertype)references)(1,1),readertype(type_name)createtableborrowrecord(IDintegerprimarykeyidentitybook_idinteger,(1,1),cer_idinteger,borrowtim

温馨提示

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

评论

0/150

提交评论