00:00
行,那咱们关于GDBC的使用呢,最后还差一个事儿啊,就是我们这个第九章说阿帕奇下呢,有一个叫DB的一个炸包,这个炸包呢,也能够实现c rud的操作啊,那大家回忆一下,我们第八章叫数据库连池啊,有了数据库连池以后呢,我们就用不着呢,自己去创建一个数据库连接了,相当于把咱们创建连接这事儿呢给替换了。那么第九章呢,就可以把咱们自己写的那个prepare的statement实现的通用的增长改查操作给替换了啊,你看这样一浓缩的话呢,GDBC其实知识就比较少了是吧?哎,不骗你们啊,诶然后呢,这块我们来看一下这个怎么做,其实说白了哈,说白了就是这个里边那个API呢,我们一会也可以看源码,其实源码写的就是跟咱们自己写的是一样的啊,说白了呢,就是说咱们开发当中,你这个prepare s肯定是要用的了,但是的话呢,经常用,经常用,每个人都这样写,那每个人都去写多麻烦呀。呃,那干脆呢,我们就提供一套,呃,相应的炸包或者相应的一个代码,然后也给他开源了,大家呢,直接拿过来用就行,诶就好比是咱们前面Java记录讲的那个数据这个数组一样啊,数组的话呢,咱们就存储数据的。
01:14
哎,操作数据的话呢,我们说呃给他呢,进行一个呃插入操作呀,这个或者是添加数据啊呃删除啊呃不太方便,所以呢,我们后边就想到说针对于这个数组,干脆封装一下得了,所以就有了我们后边的a list。啊,那这个ear的话呢,当然了,你可以自己去造一个ear,那你每个人都自己造,都自己造多麻烦呀,哎干脆呢,就提供一个现成的啊,就是而把这个都封装好了,这个呢,都不用你第三方去导了,因为这个呢实在是太常用了,诶都直接集成到我们这个JDK的这个API里边了。那就成链了啊,那我们现在呢,使用这个GDBC技术啊,对于这个呃萨公司来说,我就定义标准啊,那这个呢,你们使用prepared SIM呢,你去实现呢,增长改查操作,这个我就不往里边放了,我就往定义标准了,那那这个第三方的说,那我把这个事做一下吧,诶就是我们现在要说的这个阿法旗下的DB us。
02:11
诶,这个有了以后呢,我们直接呢,替换咱们之前自己写的那个增删改查操作就可以了啊具体怎么做呢?诶这块呢,其实也是做一个倒包的工作就可以了啊,你会发现从我们讲这个数据连池这块开始啊,都是这样的一个套路,这个我们后边学习呢,其实也是类似的啊,也是类似的这块涉及到这个包找一下。诶,咱们这叫DBS打开,然后注意啊,就是别看到这个压缩文件一样,这个就往里倒,因为有的同学呢,这个炸包呢,在自己那个上面呈现的跟我这不一样啊,在你那呈现的可能也是一个压缩文件的一个样子啊,别看到压缩文件呢,就CTRLC啊,这是这文件啊,点开这个里边有一个jar文件啊,把它呢CTRLC一下啊,这个咱们放到已经够多了啊,还放到这个Li下CTRLV一下。
03:03
嗯,这个吧。D啊点右键哎,Build pass哎就进来了啊进来以后的话呢,它这里边提供的相关API呢,就能够支持我们实现增删改查操作了,哎,那我们比较感兴趣就是到底是用谁,诶然后回过来这有一个叫APIDOS点开有一个index.al像这种都叫首页啊啊点开。啊,又长的那样子啊,那用谁呢。哎,这就直接告诉大家了,我们要用的呢,就是这里边一个叫query runner。诶,Query rener啊query runner,这是它提供的一个类啊,这个类里边往下走,我们呢,如果想进行这个查询,查询呢,不是就叫query吗。哎,这是query,我们想进行增删改自然改不叫update吗?诶直接呢,调这里边的方法就可以了,来我们来测试一下。
04:01
那这呢,咱们写到这个四了啊。该五了,哎,这个我们叫DB啊U,哎,DB us行,在这里边我们创建一个关于这个叫query啊。Runner,诶,它的一个测试。哎,这呢,我们把刚才这个说明这块粘一下啊。呃,就相当于阿帕奇呢这个组织诶,给我们提供了一个开源的GDBC的一个工具类啊,它是对GDBC的一个简单封装啊,学习成本的低,呃,并且呢,使用了这样极大简化了我们的工作量啊,不会影响性能啊,就是它呢,是提给我们提供了一个啊封装了啊GBC的增删改造操作的这样的一个工具类啊。哎,工具类库封装了。诶封装了,哎,针对于诶数据库的啊增删改查操作,哎这样子OK,这呢,我们主要说明的就是这个quean的问题了,那就咱一个一个的测一下。
05:15
哎,那测试一下,咱们先测试一下,比如说叫插入一条数据吧。哎,Insert一下,哎,这个我们做一个导入,哎,首先呢,我们需要去创建一个哎叫query runner,就这个哎,然后CTRL1啊得到一个具体的runner行,拿这个runner啊,CTRLC啊,CTRLV,第二我们现在呢,想插入一条数据啊,这属于增删改的操作,那就是update。那的话呢,这块又有一些重载的这个操作了。重载的话,同样的啊,你看这个参数呢,叫二次零二次一啊等等等,这个就属于我们没有关联源码,哎,包括你点到这块呢,他也不会给你提示这些相应的说明信息了啊怎么办呢?关联一下源码啊,点一下没有诶先过来看一眼。
06:04
源码的话啊,呈现的是一个压缩文件,点一下,诶压缩文件呢,你就选这个file d u,哎,它打开OK,好这就能看到关注啊,然后这时候我们再去第二啊进行一个叫update。哎,你看这时候呢,相应的这个啊,这应该是我们的叫文档注示了啊,哎,然后呢,关于我们这个参数呢,也能也都能够列的比较清晰啊,那我们调阿的话呢。可以考虑呢,是作为一个连接传入,就是如果呢,你要呃是一个事物中的一个操作的话呢,你就传个连接,如果呢,它单独的就是一个事物了啊,你就不用传了,因为里边呢自动帮你造个连接啊,属于这种咱们选一个吧,选一个这个最复杂的这个得了啊行,这呢就是我们想插入一条数据的这个操作了,首先呢,需要传一个连接啊,J个BC啊us。
07:01
哎,这个用咱们,诶后来这个吧,哎,这个艾特硅谷四这下边的第2GET一个connection,咱们用这个是德鲁伊的是吧?啊这个是CP0,这个是DBCP这是德鲁伊,这个是咱们手动写的啊用第三个吧。好,CTRLL得到一个连接。诶,链接呢放到这好,接着呢写个circle。这时候呢,我们想插入一条数据,那不妨呢,就以这个customers这个表为列,往这里边呢,插入一条数据。Insert into customers name email first values 123。可以了,然后接着呢,填我们这个对应的参数啊,第一个name。啊,内幕咱们。写个明星吧。最近比较火的男明星吧,之前说过叫蔡徐坤是吧?这这这些是男的,男的我还是知道的啊,这个字没写错吧,没有啊行,然后呢,Email蔡蔡有其那就写个全称吧,坤,嗯126,.com然后birthday,诶,这个位置呢,你看我传一个这样的字符串行吗?这样可以吧。
08:38
行呗,比如报错了,诶这这块没提示是吧,这个是因为你有异常的问题,这个咱们就直接都演示这个叫solution了啊行啊写好了,这呢就是一个update的操作,这个update操作的话,它一个返回值啊,就相当于返回来你到底是影响了几条数据啊,你看这块写了执行是诶添加修改或删除啊这样的这个操作了,这个返回值的话呢,咱这块就你要不感兴趣就不获取了啊,你要感兴趣呢,你就获取一下,这个呢,相当于是我们诶insert的一个count,诶打印一下说呢,添加了几条记录啊,就这意思。
09:21
添加了insert account。诶条记录,哎这就行了,那既然这块你涉及到一个连接呢,是我们在这里边去创建的这个你就诶别这样了,后边呢,也记着呢,把我们这个连接呢给关一下看jdbc us。还有这四第二,哎,去close resource连接这个呢就没有了,哎就完事啊,然后呢,把这块包一下,点右键位try catch finally。诶扔进去默认值,诶还是这几个事儿好完事了啊,现在的话呢,刷新一下,然后添加。
10:07
执行说添加了一条记录,然后过来刷新,哎,就进去了,诶这个时候呢,我们并没有去使用自己定义的那个prepare statement提供的那个通用的增删改或查的方法,而是呢,直接调了一个快里边这个叫update的方法,哎方法直接就实现了,那么他这个update怎么做的呢?点一下进来了。哎,看一样不啊,这呢是它这个叫prepare statement,说this.prepare statement,这是他自己的一个方法,连接传进去搜狗传进去点开这叫什么呀。预编译SQ语句嘛,咱们也是这样写的是吧,得到一个prepared statement以后,下边这个事呢,一看呢就叫做。填充占位符。啊,点开你看他把这个prepared statement这不传进去了,把这个可变形单传进去了,点开,点开以后呢,如果你这个可变形单是一个空的,这就属于特殊情况了啊,然后另外的话呢,呃,这个变量是个false false呢非啊这就是个处再进去看一下你这个参数。
11:18
哎,这个是谁,这是他啊,他获取着你这个参数的一个个数,跟我们这个说白了就是咱们的占位符跟你这个形,呃,可变形态那个个数呢,看匹配不匹配是吧?哎,咱们说呢,正常咱写的时候都是匹配的,就是它那是针对一些特殊情况的一些校验,你要不匹配的话呢,这个抛了个异常了。哎,那真正的去前程站润服的操作不就在这儿吗?For循环把这个可变形态呢遍历一下,哎,你要不是no这块,我们这叫填充占位符吗。哎,其实跟咱们写的核心操作呢是一样的,填充完Java符以后,诶调用了excu update接收了一下这个Rose作为一个返回值,相当于呢,你到底是影响了多少条记录,哎,所以你看他这个update操作呢,就是比咱们写的呢,就是考虑的这个建容性要稍微好一点,核心代码其实是一样的。
12:09
啊就这种啊,说白了就是我们封装好以后,大家回头可以直接用这个快软展就行,其实啊,但是呢,我们对呃,它里边怎么去实现的这些细节呢,其实也是很清楚的,因为我们自己呢,都手写过啊这种行这呢是我们测试的一个插入,那增删改是不是都类似啊。那山跟改还用测不?那我就不测了啊,哎,删和改呢一样,区别呢就是搜后语句不一样了,仅此而已啊,那我们下边呢,重点来说一下这个查询操作。
我来说两句