基于Oracle数据库的应用开发课件

上传人:博****1 文档编号:569304539 上传时间:2024-07-28 格式:PPT 页数:51 大小:609.50KB
返回 下载 相关 举报
基于Oracle数据库的应用开发课件_第1页
第1页 / 共51页
基于Oracle数据库的应用开发课件_第2页
第2页 / 共51页
基于Oracle数据库的应用开发课件_第3页
第3页 / 共51页
基于Oracle数据库的应用开发课件_第4页
第4页 / 共51页
基于Oracle数据库的应用开发课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《基于Oracle数据库的应用开发课件》由会员分享,可在线阅读,更多相关《基于Oracle数据库的应用开发课件(51页珍藏版)》请在金锄头文库上搜索。

1、第第16 基于基于Oracle数据库的应数据库的应用开发用开发本章内容本章内容p图书管理系统数据库设计与开发p基于Oracle数据库的人事管理系统开发 本章要求本章要求p了解基于数据库的应用系统开发过程p了解图书管理系统开发的过程与实现p了解人事管理系统部分核心代码的实现16.1图书管理系统数据库设计与开图书管理系统数据库设计与开发发p图书管理系统需求分析p图书管理系统数据库对象设计p图书管理系统数据库对象创建p图书管理系统应用开发16.1.1 图书管理系统需求分析图书管理系统需求分析16.1.2 图书管理系统数据库对象设图书管理系统数据库对象设计计p表设计p序列设计p视图设计pPL/SQL功

2、能模块设计表设计表设计pBOOK_CLASS表结构及其约束字段名数据类型长度约束说明classidNUMBER11主码学科类型编号classnameVARCHAR220NOT NULL学科类型名称demoVARCHAR2100说明pBOOK_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenameVARCHAR220NOT NULL图书类型名称demoVARCHAR2100说明pBOOK表结构及其约束字段名数据类型长度约束说明bookidNUMBER11主码书籍编号booknameVARCHAR220NOT NULL书籍名称author1VA

3、RCHAR220NOT NULL书籍作者author2VARCHAR220书籍作者author3VARCHAR220书籍作者pubdateDATE出版日期publishVARCHAR230出版社photoVARCHAR2100图片地址abstractVARCHAR24000内容简介priceNUMBER7,2NOT NULL价格ISBNVARCHAR217NOT NULL书籍ISBN码bookclassNUMBER11外码学科类型booktypeNUMBER11外码藏书类型pREADER_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenam

4、eVARCHAR220NOT NULL图书类型名称demoVARCHAR2100说明pREADER表结构及其约束字段名数据类型长度约束说明readeridNUMBER11主码读者编号nameVARCHAR210NOT NULL读者姓名telephoneVARCHAR215联系电话emailVARCHAR230邮箱地址deptVARCHAR220所在院系rightNUMBER1取值为0或1借阅权限readertypeNUMBER11外码读者类型demoVARCHAR21000说明pBORROW表结构及其约束字段名数据类型长度约束说明readeridNUMBER11外码联合主码读者编号bookid

5、NUMBER11外码图书编号borrowdateDATE出借日期dueDATE应还日期last_dueDATE实际归还日期pRULE表结构及其约束字段名数据类型长度约束说明booktypeNUMBER11外码联合主码藏书类型编号readertypeNUMBER11外码读者类型编号daysNUMBER5NOT NULL期限(天)numNUMBER5NOT NULL册数(本)renewNUMBER5NOT NULL续借次数(次)overtimeNUMBER5,2NOT NULL逾期处罚(元/册/天)pADMIN表结构及其约束字段名数据类型长度约束说明IdNUMBER11主码管理员编号usernam

6、eVARCHAR210NOT NULL管理员账号passwordVARCHAR211NOT NULL账号密码p PRECONCERT(预约表)表结构及其约束字段名数据类型长度约束说明readeridNUMBER11主码联合主码读者编号bookidNUMBER11主码图书编号predateDATE预约日期pSEQ_READERS:产生读者编号,起始值为10 000。pSEQ_BOOKS:产生图书编号,起始值为100。序列设计序列设计视图设计视图设计p创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。p创建名为“BOOK_TYPE_STAT_VIEW”的视图

7、,包括各类图书的借阅统计信息。PL/SQL功能模块设计功能模块设计p创建一个计算借阅超期天数的存储过程。p创建一个计算图书应归还日期的函数。p创建一个计算超期罚款的存储过程。p创建一个触发器,禁止星期六、星期日以及非工作时间借阅图书操作。16.1.3 图书管理系统数据库对象创图书管理系统数据库对象创建建p创建admin表nCREATE TABLE admin(nid NUMBER(11) PRIMARY KEY, n username VARCHAR2(10) NOT NULL,npASsword VARCHAR2(11) NOT NULL);p创建reader_type表nCREATE TA

8、BLE reader_type(ntypeid NUMBER(11) PRIMARY KEY, ntypename VARCHAR2(20) NOT NULL,ndemo VARCHAR2(100);p创建reader表nCREATE TABLE reader(nreaderid NUMBER(11) PRIMARY KEY, nname VARCHAR2(10) NOT NULL,ntelephone VARCHAR2(15),nemail VARCHAR2(30),dept VARCHAR2(20),nright NUMBER(1) CHECK(right=0 or right=1),nr

9、eadertype NUMBER(11) REFERENCES reader_type(typeid),ndemo VARCHAR2(1000);p创建book_type表nCREATE TABLE book_type(ntypeid NUMBER(11) PRIMARY KEY,ntypename VARCHAR2(20) NOT NULL,ndemo VARCHAR2(100);p创建book_class表nCREATE TABLE book_class(nclASsid NUMBER(11) PRIMARY KEY,nclASsname VARCHAR2(20) NOT NULL,nde

10、mo VARCHAR2(100);p创建book表nCREATE TABLE book(nbookid NUMBER(11) PRIMARY KEY,nbookname VARCHAR2(20) NOT NULL,nauthor1 VARCHAR2(20) NOT NULL,nauthor2 VARCHAR2(20),nauthor3 VARCHAR2(20),npubDATE DATE,publish VARCHAR2(30),nphoto VARCHAR2(100),nabstract VARCHAR2(4000),nprice NUMBER(7,2) NOT NULL,nisbn VAR

11、CHAR2(17) NOT NULL,nbookclASs NUMBER(11) REFERENCES book_clASs(clASsid),nbooktype NUMBER(11) REFERENCES book_type(typeid);p创建borrow表nCREATE TABLE borrow(nreaderid NUMBER(11) REFERENCES reader(readerid),nbookid NUMBER(11) REFERENCES book(bookid),borrowdate DATE,ndue DATE,last_due DATE,nPRIMARY KEY(re

12、aderid,bookid);p创建preconcert表nCREATE TABLE preconcert(nreaderid NUMBER(11) REFERENCES reader(readerid),nbookid NUMBER(11) REFERENCES book(bookid),npredate DATE,nPRIMARY KEY(readerid,bookid);p创建rule表nCREATE TABLE rule(nbooktype NUMBER(11) REFERENCES book_type(typeid),nreadertype NUMBER(11) REFERENCES

13、 reader_type(typeid),ndays NUMBER(5) NOT NULL,nnum NUMBER(5) NOT NULL,nrenew NUMBER(5) NOT NULL,novertime NUMBER(5,2) NOT NULL,nPRIMARY KEY(booktype,readertype);p序列的创建nCREATE SEQUENCE seq_reader START WITH 1 INCREMENT BY 10000;nCREATE SEQUENCE seq_book START WITH 1 INCREMENT BY 100;p创建视图reader_book_

14、viewnCREATE OR REPLACE VIEW reader_book_viewnASnSELECT name,bookname,borrowdate,due,last_due nFROM reader,book,borrow nWHWER reader.readid=borrow.readid AND borrow.bookid=book.bookid;p创建视图book_type_stat_viewnCREATE OR REPLACE VIEW book_type_stat_viewnASnSELECT booktype,COUNT(booktype) nFROM (SELECT

15、readerid,borrow.booktype,nBooktype,borrowdate,due,last_due nFROM borrow,book nWHERE book.bookid=borrow.bookid)p计算借阅超期天数的存储过程pCREATE OR REPLACE PROCEDURE p_days_FROM_due(pv_readerid NUMBER,v_bookid NUMBER,v_days out NUMBER)pASpBEGINpSELECT due sysdate INTO v_days FROM borrow pWHERE readerid=v_readeri

16、d AND bookid=v_bookid;pIF v_days=0 THEN p v_day:=0;pEND IF;pEND;p计算图书应归还日期的函数pCREATE OR REPLACE FUNCTION f_date_is_due(pv_readerid NUMBER,v_bookid NUMBER)pRETURN VARCHAR2pASpv_booktype NUMBER;pv_readertype NUMBER;pv_date VARCHAR2(10);pBEGINpSELECT booktype INTO v_booktype FROM book WHERE bookid=v_bo

17、okid;pSELECT readertype INTO v_readertype FROM reader WHERE readerid=v_readerid;pSELECT to_char(sysdate+days, yyyy-mm-dd) INTO v_date FROM rule pWHERE readertype=v_readertype AND booktype=v_booktype;pRETURN v_date;pEND;p计算超期罚款的存储过程pCREATE OR REPLACE PROCEDURE p_timeover_money(pv_readerid NUMBER,v_bo

18、okid NUMBER ,v_money OUT NUMBER)pASpv_days NUMBER;pv_readertype NUMBER;pv_booktype NUMBER;pBEGINpp_days_from_due(v_readerid,v_bookid,v_days);pSELECT booktype INTO v_booktype FROM book WHERE bookid=v_bookid;pSELECT readertype INTO v_readertype FROM reader WHERE readerid=v_readerid;pSELECT overtime*fl

19、oor(abs(v_days) INTO v_money FROM rule pWHERE readertype=v_readertype AND booktype=v_booktype;pEND;p判断读者可否进行借阅的存储过程pCREATE OR REPLACE PROCEDURE p_can_borrow(pv_readerid NUMBER,v_bookid NUMBER,v_num OUT NUMBER)pASpv_right NUMBER;pv_borrowed_num NUMBER;pv_rule_num NUMBER;pBEGINpSELECT right INTO v_rig

20、ht FROM reader WHERE readerid=v_readerid;pv_borrowed_num:=f_borrowed_num(v_readerid,v_bookid);pv_rule_num:=f_rule_num(v_readerid,v_bookid);pIF v_right=1 THEN pv_num:=0;pELSEpv_num:=v_rule_num-v_borrowed_num;pEND IF;pEXCEPTIONp WHEN OTHERS THENp v_num:=0;pEND;16.2 人事管理系统开发人事管理系统开发p人事管理系统介绍p数据库设计p重要界面

21、的设计与实现p主要代码的实现16.2.1人事管理系统介绍人事管理系统介绍p功能:录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。p实用的/S结构,后台Oracle数据库16.2.2 数据库设计数据库设计员工员工编号姓名性别出生日期身份证号员工请假请假天数员工工资拥有1工资编号员工编号基本工资岗位工资出勤费拥有所属部门管理员编号姓名密码。 . .管理管理管理11请假编号q111mnp员工编号p员工基本信息表 n员工基本信息表主要描述员工的个人情况,如姓名、员工基本信息表主要描述员工的个人情况,如姓名、性

22、别、出生日期、身份证号、所属部门等,其中员工性别、出生日期、身份证号、所属部门等,其中员工编号作为员工基本信息表的主码。编号作为员工基本信息表的主码。p员工工资信息表n员工工资信息表主要描述每个员工所对应的工资情况,员工工资信息表主要描述每个员工所对应的工资情况,如工资编号、基本工资、岗位工资、出勤费等,其中如工资编号、基本工资、岗位工资、出勤费等,其中工资编号作为员工工资信息表的主码。而其中的员工工资编号作为员工工资信息表的主码。而其中的员工编号是外码,它的取值参照于员工基本信息表的主码编号是外码,它的取值参照于员工基本信息表的主码取值。同时,每名员工均只有一个工资编号和一个员取值。同时,每

23、名员工均只有一个工资编号和一个员工编号,即员工实体与员工工资实体之间是一对一的工编号,即员工实体与员工工资实体之间是一对一的联系。联系。 p员工请假信息表n员工请假信息表主要描述每个员工所对应的请假情况,员工请假信息表主要描述每个员工所对应的请假情况,如请假总天数、请假开始时间、请假结束时间、请假如请假总天数、请假开始时间、请假结束时间、请假原因等,其中请假编号作为员工请假信息表的主码。原因等,其中请假编号作为员工请假信息表的主码。而其中的员工编号是外码,它参照于员工基本信息表而其中的员工编号是外码,它参照于员工基本信息表的主码取值。同时,每名员工可以有多次请假记录,的主码取值。同时,每名员工

24、可以有多次请假记录,即员工实体与员工请假实体之间是一对多的联系。即员工实体与员工请假实体之间是一对多的联系。 p管理员表n管理员表主要描述本系统中的管理员账户情况,包括管理员表主要描述本系统中的管理员账户情况,包括编号、管理员名、密码,其中编号作为管理员表的主编号、管理员名、密码,其中编号作为管理员表的主码。码。 p员工基本信息表(emp)字 段 名名 称类 型字 段 名名 称类 型empnum员工编号VARCHAR2(16)address地址VARCHAR2(40)empname姓名VARCHAR2(16)policy政治面貌NUMBERSex性别NUMBERphone电话VARCHAR2(

25、16)birthday出生日期DATEdegree学历NUMBERnation民族VARCHAR2(10)college毕业院校VARCHAR2(40)nativeplace户籍VARCHAR2(40)duty职务VARCHAR2(16)Ident身份证号VARCHAR2(16)title职称VARCHAR2(16)department所属部门VARCHAR2(16)sort在职类别NUMBERmarriage婚姻状况NUMBERremark备注VARCHAR2(400)p员工工资信息表(pay) 字 段 名名 称类 型字 段 名名 称类 型Id工资编号NUMBERtax个人所得税NUMBER

26、empnum员工编号VARCHAR2(16)insure_shiye失业保险NUMBERbasepay基本工资NUMBERinsure_yanglao养老保险NUMBERPost岗位工资NUMBERinsure_yiliao医疗保险NUMBERworkprice出勤费NUMBERshouldpay应发工资NUMBERMess伙食补贴NUMBERshoulddeduct应扣工资NUMBERtraffic交通补贴NUMBERpay实发工资NUMBERPrice物价补贴NUMBERp员工请假信息表leave) 字 段 名名 称类 型字 段 名名 称类 型Id请假编号NUMBERleavepass请假

27、批准人VARCHAR2(16)empnum员工编号CHAR(16)reason请假原因VARCHAR2(400)startdate请假开始时间DATEapplydate申请日期DATEenddate请假终止时间DATEcanceldate销假日期DATEalldate请假总天数NUMBERp管理员表(admin) 字 段 名约 束名 称类 型id主码编号NUMBERusernameNOT NULL管理员名VARCHAR2(16)passwordNOT NULL密码VARCHAR2(16)16.2.3 重要界面的设计与实现重要界面的设计与实现p管理员登录界面p增加人员基本信息p查询人员基本信息p

28、员工请假信息p员工工资信息维护与管理p 管理员登录界面 p人员信息添加界面 p员工信息查询界面 p员工请假信息添加界面 p员工工资信息管理界面 16.2.4 主要代码的实现主要代码的实现p系统采用JDBC的数据库连接 ntrynClass.forName(oracle.jdbc.driver.OracleDriver).nnewInstance();n/加载数据库连接的驱动程序加载数据库连接的驱动程序nString url=jdbc:oracle:thin:localhost:1521:orcl; n/连接的字符串,其中连接的字符串,其中orcl为你的数据库的为你的数据库的SIDnString

29、 user=scott; nString password=tiger;nConnection conn= DriverManager.getConnection(url,user,password);n/与数据库建立连接与数据库建立连接nStatement stmt=conn.createStatement();n/产生产生Statement对象,用于执行对象,用于执行SQL语句语句n p员工工资信息管理代码p显示员工信息p添加员工的个人工资信息p处理个人工资信息的添加总结总结p数据库应用系统开发过程p图书管理系统数据库的设计与实施p 人力资源管理系统开发5、世上最美好的事是:我已经长大,父

30、母还未老;我有能力报答,父母仍然健康。6、没什么可怕的,大家都一样,在试探中不断前行。7、时间就像一张网,你撒在哪里,你的收获就在哪里。纽扣第一颗就扣错了,可你扣到最后一颗才发现。有些事一开始就是错的,可只有到最后才不得不承认。8、世上的事,只要肯用心去学,没有一件是太晚的。要始终保持敬畏之心,对阳光,对美,对痛楚。9、别再去抱怨身边人善变,多懂一些道理,明白一些事理,毕竟每个人都是越活越现实。10、山有封顶,还有彼岸,慢慢长途,终有回转,余味苦涩,终有回甘。11、人生就像是一个马尔可夫链,你的未来取决于你当下正在做的事,而无关于过去做完的事。12、女人,要么有美貌,要么有智慧,如果两者你都不

31、占绝对优势,那你就选择善良。13、时间,抓住了就是黄金,虚度了就是流水。理想,努力了才叫梦想,放弃了那只是妄想。努力,虽然未必会收获,但放弃,就一定一无所获。14、一个人的知识,通过学习可以得到;一个人的成长,就必须通过磨练。若是自己没有尽力,就没有资格批评别人不用心。开口抱怨很容易,但是闭嘴努力的人更加值得尊敬。15、如果没有人为你遮风挡雨,那就学会自己披荆斩棘,面对一切,用倔强的骄傲,活出无人能及的精彩。5、人生每天都要笑,生活的下一秒发生什么,我们谁也不知道。所以,放下心里的纠结,放下脑中的烦恼,放下生活的不愉快,活在当下。人生喜怒哀乐,百般形态,不如在心里全部淡然处之,轻轻一笑,让心更

32、自在,生命更恒久。积极者相信只有推动自己才能推动世界,只要推动自己就能推动世界。6、人性本善,纯如清溪流水凝露莹烁。欲望与情绪如风沙袭扰,把原本如天空旷蔚蓝的心蒙蔽。但我知道,每个人的心灵深处,不管乌云密布还是阴淤苍茫,但依然有一道彩虹,亮丽于心中某处。7、每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方!8、不要活在别人眼中,更不要活在别人嘴中。世界不会因为你的抱怨不满而为你改变,你能做到的只有改变你自己!9、欲戴王冠,必承其重。哪有什么好命天赐,不都是一路披荆斩棘才换来的。10、放手如拔牙。牙被拔掉的那

33、一刻,你会觉得解脱。但舌头总会不由自主地往那个空空的牙洞里舔,一天数次。不痛了不代表你能完全无视,留下的那个空缺永远都在,偶尔甚至会异常挂念。适应是需要时间的,但牙总是要拔,因为太痛,所以终归还是要放手,随它去。11、这个世界其实很公平,你想要比别人强,你就必须去做别人不想做的事,你想要过更好的生活,你就必须去承受更多的困难,承受别人不能承受的压力。12、逆境给人宝贵的磨炼机会。只有经得起环境考验的人,才能算是真正的强者。自古以来的伟人,大多是抱着不屈不挠的精神,从逆境中挣扎奋斗过来的。13、不同的人生,有不同的幸福。去发现你所拥有幸运,少抱怨上苍的不公,把握属于自己的幸福。你,我,我们大家都

34、可以经历幸福的人生。14、给自己一份坚强,擦干眼泪;给自己一份自信,不卑不亢;给自己一份洒脱,悠然前行。轻轻品,静静藏。为了看阳光,我来到这世上;为了与阳光同行,我笑对忧伤。15、总不能流血就喊痛,怕黑就开灯,想念就联系,疲惫就放空,被孤立就讨好,脆弱就想家,不要被现在而蒙蔽双眼,终究是要长大,最漆黑的那段路终要自己走完。5、从来不跌倒不算光彩,每次跌倒后能再站起来,才是最大的荣耀。6、这个世界到处充满着不公平,我们能做的不仅仅是接受,还要试着做一些反抗。7、一个最困苦、最卑贱、最为命运所屈辱的人,只要还抱有希望,便无所怨惧。8、有些人,因为陪你走的时间长了,你便淡然了,其实是他们给你撑起了生命的天空;有些人,分开了,就忘了吧,残缺是一种大美。9、照自己的意思去理解自己,不要小看自己,被别人的意见引入歧途。10、没人能让我输,除非我不想赢!11、花开不是为了花落,而是为了开的更加灿烂。12、随随便便浪费的时间,再也不能赢回来。13、不管从什么时候开始,重要的是开始以后不要停止;不管在什么时候结束,重要的是结束以后不要后悔。14、当你决定坚持一件事情,全世界都会为你让路。15、只有在开水里,茶叶才能展开生命浓郁的香气。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号