00:00
行,那上午的话呢,我们是演示了一下使用prepared statement来替换statement来解决了这个色Q注入的问题啊,那除了解决这个搜后注入问题以后呢,我们说使用prepare呢,还可以做这样的事儿,哎,那做这个事之前呢,咱们这个先做一下这个课练习啊,做Q练习之前呢,先简单把这个小结一下啊,咱把咱们这个上午做的个事儿简单总结一下,那到目前为止呢,我们这块呢,提到了说有两种思想,两种技术啊,两种思想,第一种叫面向接口编程的思想,这个在咱们一开始讲这DBC的时候呢,就明确这个事儿了,诶我们看下这个相应的这个体系结构啊,在这说到的说对于咱们Java程序员来讲,咱们呢,只需要面向JDBC这套接口进行编程就可以了,那么我们编写的代码当中,你不会出现说第三方的API的,呃,也就是大家呢,你看我们任何打开一个文件哈增然改查相关的,你看上边import里边我们都不会出现第三方的API。
01:00
哎,这就叫做面向接口编程,就是由于这里边我们出现的这些呢,其实主体都是接口了啊,叫面向接口编程,那我们有一个入口在哪呢?那入口就在我们获取连接这块。这个呢,咱们找一个这个,比如说query查询这块啊,呃,这呢是查一个表中的多条记录,咱们返回的是一个集合了,以这个为例啊,这里边呢,说出现的都是接口,真正运行的时候呢,那方法还都能执行,那说明呢,调用的都是有方法体的那些方法了,那到底从哪个一开始这个点进来的呢?就是从连接对吧?因为我们到连接调这个连接的时候呢,我们这呢需要去加载一个文件,这个文件呢,就是我们这里边写的这个文件,在这里边出现了一个driver,这个呢是我们第三方的一个API的位置,呃,就从这个位置开始我们创建,就拿着这个driver啊,咱们相当于是获取了一个具体的连接了,因为咱们在这个,呃,Driver manager看它那个,呃,不是driver manager,看这个MYS的这个driver源码的时候呢,诶看到了它底层帮我们去创建了一个new driver,哎,造了一个他的对象,然然后呢,拿着这个对象呢,诶我们接下来就可以来获取连接了,诶所以这块返回的链接就是my circle。
02:13
的一个连接,那这个连接得到了,然后接下来其实我们从代码上来讲啊,这其实也算是一种多态的形式了,编写代码的时候呢,我们认为你返回的是一个接口connection,但实际上呢,我们运行这个代码的时候,你返回的是一个my circle connection的一个具体实现类的对象,这其实就是一个多态了,然后当我们通过编写代码时候,是接口调用的一个方法,这个方法我要一点,是不是又摸到这个接口里了。这一看呢,肯定是接口中的一个方法了,包括你看这个,这都是属于抽样方法,但是实际上当我们执行的时候呢,你拿的其实是MYSQL具体的connect这个实现类对象的重写的prepare statement这个方法,所以这块返回的这个呢,也是一个在MY当中。实现了prepared statement这个接口的事现类的一个对象,然后你在哪里,就像再去set啊这块再去query等等,编写代码的时候,你看到的其实都是我们接口调方法,但实际运行的时候呢,都是具体的MYS的实现类的对象的执行。
03:15
啊,就是我们这个代码呢,是具有很好的一致性,咱们这是面向接口编程的。诶,这是我们说的这样一个问题,呃,应该能很好的体现这样一个点,然后第二个呢,我们就提到了一个叫OM的一个思想,这个呢是针对于我们查询来讲的,在查询的时候呢,我们在数据库当中,主体的数据库对象呢,就是表了啊那么回到咱们这个Java这个层面,我们都是体现为类的对象,所以呢,他们有一个一一对应关系,这就我们就称为叫OM的一个思想,哎,通过这个呢,咱们也可以去谈,叫万事万物皆对象,其实呢,我们从Java基础一直到现在呢,延续下来这句话呢,大家应该呃有更深层次的一个理解了,包括呢,后边我们还要讲web,到web的时候,大家应该更会有一些深层次理解,就我们现在呢,接触的是在Java跟数据库交互的时候,数据库当中的这个表在我们这体现为就是类你表的一条数据呢,在我这就一个对象,所以也可以体现呢,就是,诶,就跟数据库交互这块呢,叫万十105000G,对了,那么我们后边呢,还会接触到Java呢,去读那个插包文件,嗯,插包文件里边你是一组一组的标签,那你那一组标签在我Java层面呢,也是一个一个的对象。
04:21
哎,包括呢,这个你像移动端,你要接触过移动端的话呢,这个页面它也都是一些标签,哎,那这些标签呢,在我们Java层面呢,还是一个一个的对象,也就是说呢,凡是我们Java语言,不管是自身内部的这个信息数据来讲,还是说呢,我们跟其他的一些语言进行交互来讲,凡是Java呢,去操作的都是以对象的方式来呈现的,所以呢,就叫万事万物接对象啊是这样的,然后呢,两种技术,第一种呢,呃叫数据库的,呃结果级的原数据叫result set method data啊稍微有点长,那么通过这个原数据我们能获取到的一个叫列的列数,这一行数据当中有几个列啊,这叫列数,在呢叫列为名get column里,我这都没有写get column name。
05:03
因为我们都不用它了,哎,都不用它了,这个好,这呢是俩方法,然后第二个技术呢,就是通过反射来来获取指定的,就是动态的获取指定名的属性,然后呢,诶将这个值付给相应的我们那个对象了,所以通过反射来做的这个事儿,那这个也相当于把我们前面讲技术的时候,反射呢穿起来了,大家呢,再熟悉一下这样个应用,你要不用反射的话呢,这个事就搞不定了。那这就搞不定了啊,所以呢,我们反射呢,就体现了它的一个动态的特性啊,这呢也相当于是一个应用的例子,好,这呢是我们一个总结了。
我来说两句