00:01
好,来看我屏幕啊。我们昨天呢,我们讲了JDBC的一部分知识。那么首先呢?我们需要了解JDBC是什么是吧?呃,JDBC,它是我们加法程序和数据库之间通信的一门技术。我们可以通过GDPG技术啊,可以把我们的加法程序当中的数据啊,保存到数据库当中。也可以把我们数据库当中的数据查询加载到Java内存里面去,是吧,所以说他说JDBC是我们Java和数据库之间通信的一门技术。那么首先呢,那么首先呢,我们看一下我们第一个案例呢,我们写的是什么?我们一起来看一下,首先第一步我们要做的事情是我们能够和数据库能够相连。能够相连上,我们可以获取到一个叫connection对象。那么如何能够相连上呢?第一步,我们需要把这个夹包把它加进去。第二步,我们需要去加载驱动。
01:00
第三步,我们需要通过一个叫驱动管理器,它能够帮我们去获取连接对象,哎,就是这样的。啊,这样我们就能得到一个叫connection对象,如果这个connection对象它不为空,那就表示我们连接成功了。这是我们第一步做的事情。那么第二步我们不能光连接成功,连接成功之后我们肯定要做一些事情嘛,所以我们在第二个案例当中,当我们连接成功之后,Connection。当我们连接成功之后,我们就编写了一个搜狗语句,然后呢,然后呢,我们就往这个数据库去发送这个搜狗语句。那我们怎么做的呢?哎,编写搜鬼句,紧接着我们需要去创建一个叫prepared statement的对象。啊,它是它不是六出来的,因为这是接口嘛,它是通过我们connection对象一个方法叫prepare statement。哎,他通过这样的方式,他能够帮我们去。创建出一个叫预处理命令对象。那么如果我们的SQL语句当中有问号啊。好,所以呢,我们需要去进行填充参数。
02:02
然后呢,我们填充参数需要注意一下我们填充的参数啊,它是从一开始的。不是从零开始的。好,那我们现在是ins色的一句,所以我们执行的是update啊,执行更新。好了,他给我们返回的是一个影响行数。那我们可以根据你返回的影响函数来判断你到底有没有操作成功。那么最后不要忘记了,咱们需要去释放资源PSMT以及connection这两个对象,咱们需要把它关掉,那么这两者所关的顺序不能颠倒了。一定是先关闭PSMT,再关闭connection。好了,这个是我们所说的叫映色的。那么再往下。再往下我们讲的是update操作,其实和音色的应该是差不多的是吧?同学们啊,其实应该是差不多的,仅仅是这个SQL语句不一样,填充的参数不一样,其他应该都是一样的。
03:01
那么以此类推,我们还有类的操作。Delete操作也是一样的,搜口语就不一样,填充的参数不一样,其他都是一样的。这是我们所做的叫增删改,增删改我们执行的都是XQ的update。再往下,我们做了一个叫XQ的。啊,叫执行查询。那么我们在X corry的时候,这是我们写的是select语句嘛,我们要执行查询,我们之前执行更新的时候返回的是影响行数,现在执行查询,我们返回的是result set,返回的是结果集。然后呢,我们这个select查询出来是多条记录,所以呢,我们使用的是一个Y循环,那么在我们使用Y循环的时候呢,我们使用Y循环的时候呢,哎,结果集我们想象一下我们这个R,它相当于是一个箭头,一个指针啊,它一开始的时候指向我们的表头,当我们执行点next方法,它会把这个指针往下挪动一行。挪动一行,去判断当前这一行有没有记录,如果有记录,我这个r.next返回的就是处。
04:06
好,如果返回的是true,表示这行有记录,那我就可以去一列一列的去获取数据。那么我们获取数据的时候也是一样的,索引是从一开始的。当然我们可以根据索引位置来进行获取,我们也可以可以根据我们查询的那个列名来进行获取,是吧?同学们,两个方式都可以。那行,我们把查询出来的数据啊,我们把它封装成float,最后把它扔到集合里面去。啊,最后呢,我们要释放资源。哎,就是这样,这是我们查询所有。那还有比如说我们这边有查询单个的,比如说我们根据组件进行查询,查询单个。那根据组件进行查询,查询单个的时候呢。哦,我们这边就不再是Y循环了,我们写的是if,因为根据主键查询最多只有一个。啊,所以我们就把它改成if了。
05:00
其他都是一样的。好,然后呢,我们的select语句,如果他查询的不是一条啊,不是我们的一个fruit信息。我们查询的时候呢,可能是这个这个这个一个聚合函数的一个值。那这种是属于一行一列。那这个其实我们也是可以查询出来的啊,那我们就直接get就可以,我不管你查询的是什么,我只看你的结果级的这个结构是吧,同学们。这是我们昨天啊,一个GDBC的一个入门增删改查,全部在这个案例当中。然后紧接着呢,我们就做了一些思考。啊,紧接着我们做了一些思考,呃,我们把我们GDPC这个基础知识学完之后啊,我们是写了一个小的系统是吧,同学们叫叫flu啊,一个库存的一个一个一个小的系统。我们在这个系统当中啊,其实我们的重点就是我们do当中的这个m po是不是同学们。啊,重点是这个时间内,他帮我们完成了针对于float这张表的一个操作。
06:03
啊,全部在这个这个这个类当中,然后呢,我们会发现这个类当中其实有很多的代码,其实它都是重复的。啊,它是代码冗余的,所以呢,我们就要开始思考,我们做就开始做优化了。那么第一步,第一步我们考虑的问题是什么呢?我们会发现这个类当中啊。我们会发现这个类当中。你这个获取链接。还有释放资源。你这两个操作好像好像所有的方法里面都有,我不管你是增加啊,删除修改还是查询是吧,同学们好像都有这两步操作,因此我们就做了一步优化。我们到零三这个项目里面去。好。我们把它打开。所以在这里面呢,你看我们就把这个get connection方法把它提取,把它提取出来,还有一个方法是释放资源的方法,我们也把它提取出来,没问题吧,同学们啊,把它提取出来,然后我们所有的增删改的方法里面,我们就调用这两个方法就可以了。
07:08
就没有必要再去写那一大堆重复的代码了。那这样我们的代码量呢,我们得到一个啊,得到一个这个这个简化。哎,是这样的。紧接着再来,然后呢,我们还考虑什么问题呢,我们会发现啊,我们其中的增删改操作。增删改操作步骤应该是一模一样的。但是SQ语句不一样是吧。因为SQL语句不一样,所以我们填充参数不一样,换句话说也就是增删改操作。SQ语句不同,参数不同,其他都是一模一样的。那这个时候呢,我们就把增删改操作,我们把它抽取出来。好,我们就抽取到一个负类当中去。为什么需要这个负类,我们也说过了,为什么需要有这个负类,因为你不仅仅float的do需要用这里面的方法,你其他的比如说use了,All的do cut item do等等等等,是不是也需要用这个best啊,也需要用这里面操作,那干脆我们就把它抽取成一个负类啊,然后让我们不同的do的实现类去继承这个类就可以了。
08:17
那行,我们看一下我们best deal当中,我们抽取了一个核心的方法,叫XQ的update。那么我们就把我们之前所讲的七步啊,七个步骤我们把它抽取出来了,那不一样的地方就在于这个四口语就不一样,这个参数不一样,所以我们就把这两个呢,我们就把这两个把它变成这个方法的参数,靠外界传递进来嘛,我们把不一样的地方让外界传递进来是吧,内部全部都是一致的。哎,这是我们所写的XQ的update,那行,那下面呢,咱们来接着再来看我们增删改操作已经抽取的通用方法了,那我们的查询能不能也这么去操作呢?
我来说两句