00:00
好,下午的第一个知识点啊,叫做包。包呢,和咱们Java中的概念上类似。Java中的包是干嘛使的?在咱们数据库中的这个包呢?和Java中的概念是一样的。把相关的函数相关记住了,就是同类的是吧,差不多的。呃,存储过程,还有数据类型等等,都放在一起,组成一个大杂烩。这个大杂烩呢,就叫做包。那么咱们来看一下这个。这个。Dbms output见过了吧?哎,咱们再看一下这个代码啊。这个DB Ms on foot,这就是一个包。而在这个包里边儿,有一个方法叫做输出内容。这回知道前面是啥意思了吧?哎,然后你再看DB为database,叫数据库。M manager管理员写出来啊。
01:04
Date。Database这个关键的大写。Database。然后manager。Mana这家。然后后边的S你猜。是吧?这个DBMS这四个字母代表的就是叫做。数据库管理。系统。然后后边是在数据库管理系统下边的一个分支,叫输出包。输出吧。然后呢,这个输出包咱见过了是吧?好,这是常用的一个啊,这个见过了咱就不说了,咱看下一个。DBMS叫random。随机数嘛,是吧,哎随机数,那咱们现在想搞一个随机数,应该怎么做呢。
02:02
搞个随意数很简单啊,就是一个Y6就好了。看到了吗?直接用数据,呃,那个包名点value就搞定了。来试一下。呃,咱们的DB。DBMS杠。Run RM对吧,点Y6。然后这里边儿有一二两个餐,大家来看。参数一随机数字产生的最小范围。第二,产生的最大范围还到底啥意思呢?比如说我不猜啊,我不写那个参数行不行。咱把它输出出来是吧。From d d就行。OK。每次执行它的值是不是都不同啊?
03:00
对吧。哎,都不同,那比如说现在呢,我想随机一个什么数呢,我想啊,这么写给出示啊,它随机的。随机零到一之间。的小数。随机零到一之间的小数哈。注意了。叫。零和一不包含零和一。这个和Java中的是不是一样的?好,Java中的随机数咋写来着?用的是那个麦斯数学类吧。慢点。这不就行了吗?好,它产生的是零到一的小数是吧,好,那现在我有一个需求了,我想产,我想生产两位小两位数。随机生产出一个两位数来。那么你也知道?
04:00
两位数的最小值是多少?最大值又是多少?最小值两位数。对吧,最大值呢。99 OK,就是这么着。看到了吗?说九啊,二六十四十。没毛病啊。这个点怎么去掉,哎,TC。包起来给他。1976OK。没问题吧?好,我想得到五位随机数。自己整去呗。好,知道这个参数一和二啥意思了吧。哎,第一个是最小值,第二个是最大值对吧。OK,这个是产生的是随机。嗯,随机。两位。Four。随机数两位数。个出。
05:01
随机出两位数,OK吧。不难是吧,哎,咱再来下一个啊。哎,零到1万的最近数字就这么写是吧。零到1万。OK。然后并取整,使用的就是PC。没问题吧?往下来。嗯,然后呢,这块咱来看啊,之前咱们还说了第三个包。看到叫什么DBMS,这都一样的是吧,不说了,叫照吧照吧。Job呢,叫工作,叫任务。所以这个dbms job这个包叫定时任务包,那咱们这个定时任务包能干什么呢?往下来。这样我咱们用定时任务包做这么一件事哈。他说,指定间隔内做一些重复的事儿,比如说每隔十秒向student表插一条数据。
06:04
比如说今天我要想做一个student表的一个查询是吧,但是呢,我没有一些数据做查询,做分页。大家都知道做分页的话必须得好几十条是吧。哎,我一条要写的话比较麻烦,怎么办呢?我写这么一个定时任务。我想往里边插入100万条,写一个定时任务,然后呢,我出去玩一圈去。或者说打两把,打两把联盟是吧,两把联盟搞不定之后,回头看一下数据库,100万条准备好了。这要定时任务,OK。就是说每隔十秒往里搞一条,每隔十秒往里搞一条。好吧。那咱们就把这个事儿写一下,好按照这个想把这个事儿搞定呢,下边的步骤呢,我已经给大家。这个定义出来了啊,第一步呢,创建一个表,哎,咱们六的那个表,我的天呐,我列太多了呀。
07:00
哎,不方便测试哈,咱建一个简单的表,我直接在A这里写啊第一步。创建测试表。咱叫啥嘞?咱来个person人类吧,Person没有吧。来,然后里面也非常简单,一个主键列。Per Mary。再来一个列,咱就叫名字行吗?名字我差20个。不唯恐。行吧,这张表执行。好了,第一步搞定,第二步我要定一个序列,为什么要定义序列呢?因为往这张表里边插的时候,这个ID不是主键吗?对吧,你用序列的话,它是不是自动往下加加呀。哎,所以第二步定一个序列啊。创建A。创建序列咋写来着?什么单词?Seq是吧?
08:03
然后序列名叫啥呢?叫PID行吗?PID好吧,啊,比较这个如果是真正开发的时候啊,你不能叫PID哈,序列呢,它也有它的命名规范。哎,它的命名规范是EQEQ做前缀,OK。后边呢,当然这个东西你怎么写都行,但是一看到序列他就这么写。行吧。好,来,给他创造出来。好,第三个定义存储过程,这个存储过程干什么,就是往呃这个这个P表里边儿插一条数据啊。创建存储。过程来。过程。好,来吧,Correct或者list。OK,然后叫啥名呢?咱的目的是不是往person表里边去插入一条数据啊,插person。
09:02
对吧,哎差OK,然后存储过程,呃,这个有没有这个这个这个参数啊,需不需要什么参数。不需要啊,不需要咱就给他写死就行了啊好,不需要的话,其实这个括号是可以省略的啊。好,他是,他是开始结束。这个里边干什么?就是一个insert into语句,Person why。Y6丝,然后一个值叫啥?OK,也就是说我调这个存储过程,调一次插一条,调一次插一条,OK。好,那这个ID是不是叫序列啊。拜拜,序列点next斯,哇,没毛病啊。然后后边这个名啊,也有点区别吧。比如说阿in,然后呢,你这块插入一,我这块就阿IN1,你插入二,就是阿IN2行吗。
10:01
啊,那我要把后边我要把它。拼接上你这个ID,我应该怎么做呀。是不是把前面那个直接copy过来呀。来,CTRLC。放在ID的位置。OK,这样的话是不是就是阿IN1阿IN1阿IN2啊,这是下一个值,又拿下一个值。第一次的时候他也没毛病,然后这阿又往下拿呢,这不就二了吗?对吧,然后你再拿到八的时候,阿的in应该阿IN8是吧,结果他又拿下一个值,也就说八对九,是不是他俩错了,错了一个呀。对吧,所以这后面这个玩意儿应该拿的是当前的值吧。啥来着?Cur吗?这才对呢。明白这啥意思吧?好了,这个存储过程就写到这儿,F5创建。没问题是吧,没报错。
11:00
好了,最后一步,最后一步是。呃,最后一波干嘛来着,开始创建这个定时任务是吧,定义并提交定时任务。创建创建任务。呃,定时任务并提交。改数据库。好了,这就是前边这些是不是都之前学的?感觉有点像复习了是吧?好,接下来的这第四步才是今天咱们要学习的定时任务包啊好了,来。怎么写,这么写。使用me这萨me哪来的?是这样的不说了,创建定时任务吗?咱们定时任务那个包名叫啥来着?啊,叫DBMS下划线照吧,OK,这是包名,然后后边点就是这个方法名了。这叫萨要提交。
12:01
提交你看这写着呢,用来提交定时任务到数据库管理系统,OK吧。所以呢,后边就写直接写点。刚才还有提示呢哈,这什么呀,这是。啊,咱这写这个这个点。破玩意是吧,不好使,其实啊,里边里边one two three four4个餐。好,你不能单蹦的往这一放啊,他不知道怎么执行,所以一定要begin。And在代码块里。OK。这样去提交这个定时任务好吧,好,这里面12344个参都写什么。看PPT。第一个第一个参数一。叫赵吧。他叫赵嘛,对吧,然后他说是用来提交定时任务时接收的任务编号。
13:01
啥意思呢?任务编号嘛,顾名思义,你现在创建了一个任务吧。那么我过两天是不还可以创建一个任务九啊?再过几天是不是可以创建任务18呀,对吧,每一个任务都有一个任务编号。这能明白吧,啊,再看这个job这个任务编号啊,它是一个out模式。诶。什么是out模式?往前翻一翻。什么事?它用来赋值的是吧,哎,赋值的好嘞,回来。谁了这呢?那咱把这个搞上呗。记住了啊,这个定时任务的任务编号并不是我分配的,是你创建的时候系统分配给你的。所以看好了,我定义一个任务编号。
14:01
用来接收的。明白啥意思不?哎,我只要往这一写这个变量,那么系统就会给你一个编号,给这个ID,我就知道这个ID是多少了,当然我这里边写着呢,什么类型。纯整形它不可能出现1.5号任务是吧,所以我这个类型必须为你,呃,不是。Binary。In t OK,然后呢,这个ID可能那个那个那个关键字哈,我这块叫一个勾ID行吧,任务ID啊。ID。好了,这就是第一个餐定时任务,然后当提交完成之后啊,我在下边儿啊,我把这个定时任务也给它输入出来。咋的了,这呢?我把它输出出来,我说。系统分配的任务编号为。
15:05
为了就任务编号是吧。是多少呢?这个叫做勾ID。OK。这样。能明白啥意思吧,第一个参数咱搞定了,再看第二个参数了。他说第二个参是我差二类型,这里边儿写的是要调用存储过程的名。存折换成的名啥意思嘞?字符串类型,存储过程名叫什么?叉三是吧,那就给他放到这。好,这样写成吗?看好了,我怎么写的?必须加。括号和三号。这个是必须的啊。括号、等号。否则会报错的啊。OK。第三个参,第二个参搞定第三个参。
16:01
Date类型。第一次执行任务的时间。那就此时此景呗,对吧,我只要一运行就开始呗,行吧,所以第一次执行任务的时间是啥。OK sy state。没问题吧,系统实现我什么时候提交的这个任务,什么时候就开始。好吧,最后一个参了,这写着呢,他说是他这个当这个叫特叫间隔任务,间隔时间。啥意思呢,就是说这十秒十秒OK。第一次插入,然后等十秒再插入,等十秒再插入,第四个参数就是十秒的意思,好,那这个十秒应该怎么写里边去,它有很多要求,很讨厌,首先你不能直接写一个十就拉倒了,因为它是一个字符串。而且这个字符串中必须是date类型。
17:03
比如说C加一。代表是啥意思啊?加一是加一天一小时还是一个月?一天是吧,啊这样写的话说明啥意思啊,就是说一天一执行,一天一执行。OK,而我现在要求的是不是十秒啊?哎,十秒。咋写嘞?一天里面有几个小时。24个小时吧,好,24个小时里边有几分钟。60分钟里边有几秒,然后前面我要几秒。是这么搞的。对吧,这么写的吧。咱们简单的直接给算一下啊,十是不是能少杀一个。对吧,那后边的值是多少。让他自己算去吧,不不不会算的话,一会儿我再给他,我给他算行不行,我就先写成这样先这么可以不,我先这么写上哈,好了,那么这样的话呢,四个参大功告成,搞定了吧。
18:07
啊。好了,那接下来我要开始任务跑起来了,怎么做呢?这个任务叫提交对吧。然后呢,我进行了一个简单的输出,然后系统开始运行DBMS。Job点。然后呢,这个乱方法,你看里边扔什么参啊,是不是就是那个任务编号啊,我这里面任务编号我用什么表示的。什么ID啊?好,完成,来这边观察一下,我死掉的不是我什么招来着。Person是person person person这呢?首先里边是没数据啊。好,来啊,至上的代码是不是我都搞定了?对,咱们来看一下呢,首先你看一下你的初中过程啊。有没有森有吧。
19:00
好嘞,那咱们就看这个数据吧。开始运行了啊。选中它。执行。好了,他说这个这个这个代码结构块啊,已经成功的完成了。咱们来看这个成不成功呢。你就到这边刷新一下。现在一个了吧,得等十秒,十秒不太对哈,好,他插入了一个是吧。好,这块咋不会呢。间隔这块算的不对啊,如果你这样搞的话,你看啊,它加法没错,加法肯定后运算,是不是先运算它呀,但是这是乘和除是不是都是。第一次这么搞啊,所以他算的啥,先算这个呢。OK,先说这个。这不对吧,咱们应该是先让它运算出结果,再分之十,是不是这意思啊。所以咋办啊,把后边干嘛。
20:00
是不是加括号啊。是不是这样去优先运算啊。好吧,好,那刚才这个任务啊,已经运行出来了。我怎么让这个任务停止呢?刚才那个任务编号咱没有给他输出是吧?好,记住了,我想让这个任务,想把这个任务停了,你必须要知道这个任务编号,不知道任务编号没法停,比如说刚才我这程序没法停了,没法停指的是你使用黑窗口的时候没法停,咱们使用第三方工具来,这里边有个选项。找到了吗?照吧,来打开。我是不是差person呢,前面是这个就是那个任务编号了49号。OK,好在这个其实在在这块右键也能把这个任务删除了,好吧,但是我想给大家演示一下代码啊。怎么把这个任务给删除掉,这边写着呢。OK。想把它删除。就这么写。一个begin,一个and,中间是dbms job。
21:02
点RA。木把任务编号49号任务干掉。好了。这边刷新一下。我的任务。还有了吗?没有了是吧,好,然后咱们在这个表里边来person person表这个数据删了啊。提提交提交刷新一下,这个已经没了。好了,来重来再次搞这个任务,咱把这个输出呢,也给他输出出来。我要输出,看任务编号是几好吧。好,来执行。是不是50号啊。好,这边呢,看一下数据。然后等十秒,哎。有了。然后咱俩咱紧着刷是吧,紧着刷。有吧?对吧,啊,他就十秒一差十秒一叉,再来一条,再来一条拉倒了来五上来了,OK,咱们这个任务是不是搞定了。
22:08
好,保证了之后啊,有没有同学这个疑问,为啥一没了呢?哎,刚才咱们插入阿一了,对吧,也就是说那个序列一号的序列已经被占用了,就再也回不去了,序列的特色就是这样。一旦被占用,再也回不去了,想要从一开始删了这个序列重来,好吧。OK,这样的话呢,咱们这个定时任务呢,就给大家演示到这儿。
我来说两句