基于Oracle数据库的应用开发_第1页
基于Oracle数据库的应用开发_第2页
基于Oracle数据库的应用开发_第3页
基于Oracle数据库的应用开发_第4页
基于Oracle数据库的应用开发_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第16基于Oracle数据库的应用开发,本章内容,图书管理系统数据库设计与开发基于Oracle数据库的人事管理系统开发,本章要求,了解基于数据库的应用系统开发过程了解图书管理系统开发的过程与实现了解人事管理系统部分核心代码的实现,16.1图书管理系统数据库设计与开发,图书管理系统需求分析图书管理系统数据库对象设计图书管理系统数据库对象创建图书管理系统应用开发,16.1.1图书管理系统需求分析,16.1.2图书管理系统数据库对象设计,表设计序列设计视图设计PL/SQL功能模块设计,表设计,BOOK_CLASS表结构及其约束,BOOK_TYPE表结构及其约束,BOOK表结构及其约束,READER_TYPE表结构及其约束,READER表结构及其约束,BORROW表结构及其约束,RULE表结构及其约束,ADMIN表结构及其约束,PRECONCERT(预约表)表结构及其约束,SEQ_READERS:产生读者编号,起始值为10000。SEQ_BOOKS:产生图书编号,起始值为100。,序列设计,视图设计,创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。创建名为“BOOK_TYPE_STAT_VIEW”的视图,包括各类图书的借阅统计信息。,PL/SQL功能模块设计,创建一个计算借阅超期天数的存储过程。创建一个计算图书应归还日期的函数。创建一个计算超期罚款的存储过程。创建一个触发器,禁止星期六、星期日以及非工作时间借阅图书操作。,16.1.3图书管理系统数据库对象创建,创建admin表CREATETABLEadmin(idNUMBER(11)PRIMARYKEY,usernameVARCHAR2(10)NOTNULL,pASswordVARCHAR2(11)NOTNULL);创建reader_type表CREATETABLEreader_type(typeidNUMBER(11)PRIMARYKEY,typenameVARCHAR2(20)NOTNULL,demoVARCHAR2(100);,创建reader表CREATETABLEreader(readeridNUMBER(11)PRIMARYKEY,nameVARCHAR2(10)NOTNULL,telephoneVARCHAR2(15),emailVARCHAR2(30),deptVARCHAR2(20),rightNUMBER(1)CHECK(right=0orright=1),readertypeNUMBER(11)REFERENCESreader_type(typeid),demoVARCHAR2(1000);,创建book_type表CREATETABLEbook_type(typeidNUMBER(11)PRIMARYKEY,typenameVARCHAR2(20)NOTNULL,demoVARCHAR2(100);创建book_class表CREATETABLEbook_class(clASsidNUMBER(11)PRIMARYKEY,clASsnameVARCHAR2(20)NOTNULL,demoVARCHAR2(100);,创建book表CREATETABLEbook(bookidNUMBER(11)PRIMARYKEY,booknameVARCHAR2(20)NOTNULL,author1VARCHAR2(20)NOTNULL,author2VARCHAR2(20),author3VARCHAR2(20),pubDATEDATE,publishVARCHAR2(30),photoVARCHAR2(100),abstractVARCHAR2(4000),priceNUMBER(7,2)NOTNULL,isbnVARCHAR2(17)NOTNULL,bookclASsNUMBER(11)REFERENCESbook_clASs(clASsid),booktypeNUMBER(11)REFERENCESbook_type(typeid);,创建borrow表CREATETABLEborrow(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),borrowdateDATE,dueDATE,last_dueDATE,PRIMARYKEY(readerid,bookid);,创建preconcert表CREATETABLEpreconcert(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),predateDATE,PRIMARYKEY(readerid,bookid);,创建rule表CREATETABLErule(booktypeNUMBER(11)REFERENCESbook_type(typeid),readertypeNUMBER(11)REFERENCESreader_type(typeid),daysNUMBER(5)NOTNULL,numNUMBER(5)NOTNULL,renewNUMBER(5)NOTNULL,overtimeNUMBER(5,2)NOTNULL,PRIMARYKEY(booktype,readertype);,序列的创建CREATESEQUENCEseq_readerSTARTWITH1INCREMENTBY10000;CREATESEQUENCEseq_bookSTARTWITH1INCREMENTBY100;,创建视图reader_book_viewCREATEORREPLACEVIEWreader_book_viewASSELECTname,bookname,borrowdate,due,last_dueFROMreader,book,borrowWHWERreader.readid=borrow.readidANDborrow.bookid=book.bookid;,创建视图book_type_stat_viewCREATEORREPLACEVIEWbook_type_stat_viewASSELECTbooktype,COUNT(booktype)FROM(SELECTreaderid,borrow.booktype,Booktype,borrowdate,due,last_dueFROMborrow,bookWHEREbook.bookid=borrow.bookid),计算借阅超期天数的存储过程CREATEORREPLACEPROCEDUREp_days_FROM_due(v_readeridNUMBER,v_bookidNUMBER,v_daysoutNUMBER)ASBEGINSELECTduesysdateINTOv_daysFROMborrowWHEREreaderid=v_readeridANDbookid=v_bookid;IFv_days=0THENv_day:=0;ENDIF;END;,计算图书应归还日期的函数CREATEORREPLACEFUNCTIONf_date_is_due(v_readeridNUMBER,v_bookidNUMBER)RETURNVARCHAR2ASv_booktypeNUMBER;v_readertypeNUMBER;v_dateVARCHAR2(10);BEGINSELECTbooktypeINTOv_booktypeFROMbookWHEREbookid=v_bookid;SELECTreadertypeINTOv_readertypeFROMreaderWHEREreaderid=v_readerid;SELECTto_char(sysdate+days,yyyy-mm-dd)INTOv_dateFROMruleWHEREreadertype=v_readertypeANDbooktype=v_booktype;RETURNv_date;END;,计算超期罚款的存储过程CREATEORREPLACEPROCEDUREp_timeover_money(v_readeridNUMBER,v_bookidNUMBER,v_moneyOUTNUMBER)ASv_daysNUMBER;v_readertypeNUMBER;v_booktypeNUMBER;BEGINp_days_from_due(v_readerid,v_bookid,v_days);SELECTbooktypeINTOv_booktypeFROMbookWHEREbookid=v_bookid;SELECTreadertypeINTOv_readertypeFROMreaderWHEREreaderid=v_readerid;SELECTovertime*floor(abs(v_days)INTOv_moneyFROMruleWHEREreadertype=v_readertypeANDbooktype=v_booktype;END;,判断读者可否进行借阅的存储过程CREATEORREPLACEPROCEDUREp_can_borrow(v_readeridNUMBER,v_bookidNUMBER,v_numOUTNUMBER)ASv_rightNUMBER;v_borrowed_numNUMBER;v_rule_numNUMBER;BEGINSELECTrightINTOv_rightFROMreaderWHEREreaderid=v_readerid;v_borrowed_num:=f_borrowed_num(v_readerid,v_bookid);v_rule_num:=f_rule_num(v_readerid,v_bookid);IFv_right=1THENv_num:=0;ELSEv_num:=v_rule_num-v_borrowed_num;ENDIF;EXCEPTIONWHENOTHERSTHENv_num:=0;END;,16.2人事管理系统开发,人事管理系统介绍数据库设计重要界面的设计与实现主要代码的实现,16.2.1人事管理系统介绍,功能:录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。实用的/S结构,后台Oracle数据库,16.2.2数据库设计,员工基本信息表员工基本信息表主要描述员工的个人情况,如姓名、性别、出生日期、身份证号、所属部门等,其中员工编号作为员工基本信息表的主码。员工工资信息表员工工资信息表主要描述每个员工所对应的工资情况,如工资编号、基本工资、岗位工资、出勤费等,其中工资编号作为员工工资信息表的主码。而其中的员工编号是外码,它的取值参照于员工基本信息表的主码取值。同时,每名员工均只有一个工资编号和一个员工编号,即员工实体与员工工资实体之间是一对一的联系。,员工请假信息表员工请假信息表主要描述每个员工所对应的请假情况,如请假总天数、请假开始时间、请假结束时间、请假原因等,其中请假编号作为员工请假信息表的主码。而其中的员工编号是外码,它参照于员工基本信息表的主码取值。同时,每名员工可以有多次请假记录,即员工实体与员工请假实体之间是一对多的联系。管理员表管理员表主要描述本系统中的管理员账户情况,包括编号、管理员名、密码,其中编号作为管理员表的主码。,员工基本信息表(emp),员工工资信息表(pay),员工请假信息表leave),管理员表(admin),16.2.3重要界面的设计与实现,管理员登录界面增加人员基本信息查询人员基本信息员工请假信息员工工资信息维护与管理,管理员登录界面,人员信息添加界面,员工信息查询界面,员工请假信息添加界面,员工工资信息管理界面,16.2.4主要代码的实现,系统采用JDBC的数据库连接tryClass.forName(oracle.jdbc.driver.OracleDriver).newInstance();/加载数据库连接的驱动程序Stringurl=jdbc:oracle:thin:localhost:1521:orcl;/连接的

温馨提示

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

评论

0/150

提交评论