00:00
好,咱们正式今天的课程啊,首先呢,回顾一下什么是游标。这个什么是游标啊,你就可以这么答啊,你就说呃,数据库中的数组就是游标。好吧,游标就是数据库中的速度啊。然后存储过程是做什么的?类似于Java中的方法是吧?可以将复杂的代码结构放在一个整体是吧?好,函数和存储过程有什么区别?函数有返回,有参数模式,而存储过程没有返回是吧?常用的包昨天讲了仨吧,一个是输出包。随机包和定时任务包。对吧,然后trigger能干嘛。叫触发器是吧,触发器它能够监听这张表的数据的变化是吧。哎,监控一张表的数据变化。
01:00
好,然后本章目标今天全重点非常重要,今天全重点啊。咱这些单词就不读了啊,一会挨个去看啊。好,为什么需要JDBC,看这个单词上,Java database connectivity,这个就叫连接。对吧?Java数据库连接技术的简称,它提供了连接各种常用数据库的能力。也就是说这个技术你学会了,你想用Java连Oracle连my circle连circle server连DB two就都OK了,就都会都能连上了,哎,都可以操作了。所以它是一个Java连接数据库的技术哈。好,通过GDBC能够连过去啊。好了,然后呢,这边PPT,这篇PPT大家看一下啊,首先GDBC这个技术的API,就是说GDBC这门技术里边的一些方法,一些接口,谁定义的,也就是谁规范的,是散公司。
02:10
不是我们老孙的公司啊,叫上公司,哎,上公司呢,提供了程序员常用的接口一类。OK。好,下边再看。驱动,这叫驱动管理。谁提供的又是散公司?哎,我们帮你管理这个驱动。现在有同学知道什么是驱动吗?你装电脑的时候什么U盘驱动,鼠标驱动,网卡驱动是吧,显卡驱动。对吧,任何一个硬件都需要驱动程序才能运作起来。要不然你想啊,如果没有这个驱动程序的话,你这个电脑咣当怼一个摄像头,它就能运行吗?它是运行不了的。
03:02
它必须得有这个驱动程序,才能让你的这个摄摄像头真正的运行起来,OK,驱动就是操控硬件的一个程序。那咱们Java这个语言想连接各种数据库驱动是必不可少的。好,咱们来看JDBC的驱动是谁提供的?叫数据库的厂商,呃,就是Oracle的驱动,Oracle公司提供so server server公司提供OK。他为什么会形成这么一个局面呢?是这么一个故事啊。是刚开始啊,咱们Java应用程序对吧,写了GDBC的API,就是说我要跟数据库打交道,我定一些类,定一些接口,然后咱们开始连接各种数据库是吧,连接各种数据库。一开始呢,因为Java刚推广,所以这些公司都不认可Java。
04:03
所以Java还得必不呃,它必须得连接数据库才能做数据储存。怎么做呢?Java呢?每一个数据库都写了一套驱动程序。也就是说咱假设啊,就三款数据库吧,这三款数据库的驱动程序谁写的,加班写的。它呢,写出了三套代码,那如果再来一款数据库,Java是不是还得添加一款驱动程序啊,再来一款数据库,是不是又得写一个驱动程序啊,所以Java呢,其实挺挺累的是吧。哎,但是没办法,你现在就是这个阶段对吧?创业初期你必须得听别人的,自己吃点苦吧,后来呢,Java开始问鼎世界了是吧,成为第一了。再后来呢,就这个角,角色转变了,怎么转变的呢?各个数据库开始找Java了。
05:03
对吧,比如说新开发了一个数据库,叫A数据库,哎呀,那我这个数据库必须得跟Java做连接呀,要不然那么多Java语言的开发者,他们就玩不了我数据库了。对吧,所以怎么办呢?Java现在已经硬气起来了,我不会主动找你了,你找我来吧。对吧,哎,现在很多数据库全都说。Java大哥,你们只提供接口就好。剩下的交给我们各自来实现,所以现在每个数据库的驱动都是由数据库厂商提供的。原来不是这样啊,原来是Java,它提供一切,现在是每个数据库,每个厂商提供。听懂这个概念了吧,所以呢,我这个PPT上边做的是绿色,下边改了个颜色,看到了吗。哎,下边改的颜色说明这些数据库的GDBC驱动,这些驱动程序是他们各自公司各自开发的,而上边的绿色部分是咱们散公司提供的,也就是说Java的提供的。
06:15
OK。好,是这么个过程。好了,那接下来呢,咱们就开始使用Java程序连接数据库,这是这个代码,哎,一会儿你看着我写就行了,好吧,好,刚不是说了吗?你想用Java程序连接Oracle,你是不是得搞一个Oracle的驱动程序啊?好,那这个驱动程序谁提供呢?是不是奥瑞公司提供的,哎,所以你要把这个驱动包先找到,先找到这个驱动包。去Oracle官网去下载。那就麻烦了是吧,现在不有百度吗?一搜索有的是下载的啊。好看好了,怎么做的啊,先建一个项目,咱们就叫Java项目,叫测试,1T1完成。
07:07
老提示这个让我打开一个新的窗口,我才不开呢。好在这呢。接下来呢,我现在这个项目是什么都没干呢。首先。你要跟数据库打交道的话,你必须第一件事儿,把这个驱动包给我弄到项目里边来。刚才怎么弄的啊,看好了,先CTRLCCTRLV粘过来,然后加过来之后啊,它是不好使的啊,你必须得把这个包真正的融入这个团体。OK,你现在这个过程啊,只是什么呢?就是我们这个团队,你呢,刚刚和我们站在了一起。但是并没有真正的融合进来,想要真正的融合进来,你必须得右键。
08:01
Build pass添加进来真正的ad是吧?添加到咱们的构建路径中一点,它是不是就出现了一个这个单词,然后里边这个包变成了奶瓶了。必须这个样子,这个项目才能应用到。才能应用到它。OK,这我再强调一遍啊,以后呢,如果这个类必须搞成这样,否则你一会儿写程序肯定报错。好吧。然后其实大家看这个,这个就是个炸包的上一级文件夹,就这个啊,你看看他这个单词啥意思。Reference的。咱们在学外键的时候用到了这个单词,Reference是吧,叫引用是吧,啊引用啊引用libraries。就是包是吧,他说你下边里边的这个炸包是干嘛的呢?是我引用进来的。
09:03
OK,好了,那这个第一步炸包搞定了,接下来就是咱们写代码的过程了,看我给大家写下一个类,咱们就叫测试。测试连接connection企鹅包叫测试一生成慢方法。这个样子,哎。这个样子。好吧。这里边儿呢,其实啊,跟数据库想要取得连接。这边是Java程序,这边是咱们的Oracle数据库,我想跟他,哎中间建立关联,比如说像什么呀,像这边是黄河,这边是岸是吧,然后中间是不是得搭一个桥啊,他们中间得搭一个桥,是不是才能信息,才能来回的通讯啊。对吧,所以现在咱们干的事儿就是搭这个桥,好吧,好搭桥一共就两段代码,第一个。
10:07
加载,加载数据库的驱动。第二步,直接就是获得。连接对象。哎,其实就是两句代码,两行注释啊,这两个步骤。看我一句句怎么写的啊,第一句话加载数据库的驱动,就是说把这个大包里边的驱动程序给我搞到项目里边来。很简单,第一句代码通过反射class.full name。好,这个呢,咱们加载数据库的驱动。啊加也是加载数据库的驱动的这个类,那这个类的路径在哪儿呢?这里边儿扔的就是这个路径哈,就类似于比如说咱们。如果是正常来说,什么电影啊。电影文件夹里面是吧,国产。
11:06
国产,然后动作然后。来个花木兰。MP4。明白啥意思吗?就是说上这个目录里边去找一个类,然后给我加载到程序中。OK,所以这个里边接的就是驱动类的路径,好吧,来写上点啊。参数为。参数是。驱动类的路径。驱动类的路径,那么咱都学过Java,知道Java类的路径应该怎么表示?这肯定是什么,A包里边,B包里边C包里边的啥啥啥类是不是这个路径啊。好,那这个类的路径在哪里呢?在这呢,上这里边儿找来我去这哪个呀。
12:06
整哪个呀,哎,我告诉大家啊,我直接写了啊呃,在这里边敲的时候啊,我建议呢,不要在这里边直接写,在外边写,为什么在外边写呢?因为你已经把炸包搞到你的项目里边来了,我在引用的时候它就能提示了,比如说Oracle。O点有提示了吧。它提示的都是这个沙包里边的啊。哎,JDBCBC点。Oracle驱动。看着吧,Oracle driver就是Oracle的驱动类,好吧,前边是包的路径,把整个这个玩意儿放里边来,第一句代码搞定。但是他报错不是代码的错,而是他干嘛。需要抛一常是吧,我为了让大家看清这个代码结构,我就不加拆开了,因为拆开各种括号啊,看着乱啊,我直接给它抛一下,哎,正常来说他这个抛的你看他抛你看啊,鼠标拿到这个fo能看到这个框吗?
13:14
哎,他会抛什么异常。对吧。他会抛一个叫class not found异常,能想象到为什么抛这个异常吗?如果说你这个路径写错了,他是不是就找不到这个类啊?所以他抛的异常是不是叫lay not被发找不能被发现的异常呢?好了吧,好,那咱们把它复制一下抛上来。OK,这句话是不是不报错了?好了,第一句,代码搞定。第代码搞定,切记啊,强调一下这里边的值。错一丁点都不行。有同学说,哎呀,这个大O改成小O吧,不行啊不行啊,一丁点都不行,不能错,空格也不能有。
14:05
就是必须,这句代码必须跟我一模一样,差一钉钉都不行,OK。然后呢,里边这个路径怎么找来着,是不是上外边来点来呀,编辑器是不是给你提供各种提示啊。哎,所以这都是一些方便的点啊,好了第二句代码,第二句代码简单了,通过驱动管理类。Driver manager驱动管理类直接获得一个连接。Get,你看连接这个单词是不是connection啊,它直接拿到连接,而这个里边。三个参数,好,这三个参数,首先我告诉大家是什么。这呢?看到了吧,首先第一点第一个第二个第三个都是字符串类型吧。
15:03
哎,所以呢,你先甭管是啥玩意儿,我先写上,让他别报错,OK。鼠标拿上来,他仍然是不踹开啊,他这回报的什么异常呢?哎,这告诉你,这不circle exception吗?所以你抛这个异常的同时,还要把这个异常抛上。这。逗号隔开。啊,Exception还得引个包哈,讨厌点还得把这个包给引上来,所以呢,这块呢好多异常啊,咋办嘞,我不如抛什么祖宗是吧?对吧,哎,我就不需要抛挨个的了,我只是这个程序,我刚才把这个都搞到这儿,我告诉你他会抛这个和这个好吧,但是为了咱们编写的方便啊,咱们一般情况下我也会这样抛他们土豆。我不管你是A异常还是B异常,全都给你抓了吧。
16:02
好,那这个包呢,咱就不需要引了。好了,程序是不是不报错了?这回咱们回头来再看这几个参数分别是啥玩意儿?第一个URL并不知道啥玩意儿,你看后两个。二和三一个是账号,一个是密码吧,这个不难理解,登录的话,你是不是得这块输入账号和密码啊,没问题吧,所以把这个值写上我的数据库的账号,我的密码。这两个餐简单OK,好,接下来就第一个参了,第一个餐,这第一个参啊,你看它叫什么呀,叫URL,这个URL啊,指的是下边应该有解释啊。呃,他不会给你解释URL是什么,但是给你解释这些参数了是吧。来这块有的是吧,Ul是什么呀?它说是数据库的一个链接地址,它是来自于来自于form是吧,JDBC连接池,然后数据库的名,这也没啥用啊解释的。
17:09
行了,我告诉大家吧,就是这么看啊,这个东西怎么理解,第一个参你看啊,这是我的Java程序,没问题吧。这是我的数据库,我写的我啊这边是DB啊,DB数据库啊。现在呢,我想让Java程序连接我的数据库,我是不是知道我的地址啊,比如说这是我家,这是我家昌平区,不是天安门城楼二楼是吧,这是我家。我是不是能直接找到这个门牌号,是不是就连上了。但是这回数据库换成你的了。那我同样的Java程序怎么连接你呢?我是不得知道你家的门牌号啊,所以才能连接到你的数据库啊,所以。Java程序连接什么?数据库地址门牌号是不是很重要?只有知道门牌号,才能连接过去。
18:04
也就是说接下来我写的这个代码,这个路径我要写的明白,我现在在我的电脑,我就可以操控你的数据库了。OK,好了,那这个门牌号到底怎么写呢?咱这看一眼啊。我直接从这个直接给大家copy过来啊。这里看不方便到这边来看。这呢?这个串呢,就长成这个样子,嗯,为了代码我怕大家看不全哈,我把这个串啊单独定义一个变量好吧。看。这行吧,是不是我用一个变量给它放在这儿了啊,这为了大家看的太长了是吧,好了这回呢,咱们这个连接这个串在这了。在这了,我再给大家解释解释这个串是什么意思啊,首先前面这些都是固定死的。没啥解释的。这ABC技术连接Oracle做操作,后边这个local house的。
19:06
Local host先指明它,我想连接我自己的数据库,Local host就可以了,指的是本机。大家一会儿写的时候就写成它就可以了,好吧,那如果说我想连接别人的数据库这个位置,我需要写对方的IP192.16 8.204.11。这是我的。如果是大家的话,你这块就写logo号就可以了,行吗?啊,一会儿我给大家给它写上注释啊好了,后边这个冒号,后边这个1521是啥呢?来看数据库啊,咱们在学习socket编程的时候,是不是学习了每一款软件都有一个端口号啊。端口号哈,咱们这个Oracle的端口号怎么看呢,这呢。哎,我就看,我就告诉大家看一眼得了,其实你只要把1521背下来,Oracle一般99%情况都是这个。
20:06
除非你特意的去更改它,否则它的端口号就是1521好吧。1521就是咱们数据库的端口号。最后这个or CL是个什么鬼呢?是咱们数据库的这个名。或者说登录的时候。看。或者说是什么名。这个名。OK。是不是它们都是一样的,都是or CL啊,所以嘞,我这块就叫or CL OK,这个串其实关键的是不是就是后边这几个呀,一个是IP,一个是他,一个是他,好我把这个串呢,放在上边给大家做注释啊这一块。
21:03
是IP。这一块。是端口号。这块叫数据库的名称。好。然后呢?再写上。如果是本机电脑。IP。可以。写成两种,第一种local house,第二种或者127.0.0.1。它俩表示的都是本基好吧。好了,那我写了这么半天,写了这么半天,大家看啊,整个这个方法,这个是不是通过驱动管理类获得连接啊。鼠标拿上来,鼠标拿上来,看这个方法最终返回的是一个什么东西。
22:00
是不是connection啊,Connection翻译过来是不是连接啊,所以整个这句话返回的就是一个connection对象。这个connection对象,比如说为了让大家看的清楚一些。明白。能明白不是不是就是搭上跟数据库之间的加法程序,数据库中间搭的这个桥梁啊。OK,就是他没没问题吧。好,这块需要引包。都是加瓦点四口的,OK,都是加瓦点四口的,好了,那我就看到最后呢,我就判断一下。我就判断一下我这个桥。如果不等于空,说明这个桥是不是已经存在了,已经存在说明是不是我已经连接上了,OK,打印一下测试。连接成功。OK。
23:00
这个程序第一篇程序它就消了。来运行一下。Run as job application。没问题吧,OK。好,比如说我这是我的IP啊,这是我的IP,呃,因为我这是虚拟机哈,我虚拟机的这个网段啊,跟大家不太一样哈,大家这个IP地址是不是都是什么三零点几几啊。因为我虚拟机是虚拟出的网卡,所以它是自定义的一个204网段。这个你甭管,你改成自己的local house或者说这个好了,第一段连接数据库搞定。
我来说两句