00:00
那么针对于具体的表,比如说像customers表、order表等等具体的表,我们去提供具体的deal。哎,去提供具体的do,然后具体的do里边呢,我们要用的不就是这些通用的增删改查这些方法吗?诶是这样一个逻辑啊,那么具体这个do这块呢,按说咱们直接去new一个class,让他去继承于base do就可以了,但是我们再从这个代码后续我们讲这个逻辑上来,这个这个讲的话啊,我们让这个代码呢,结构更加的。叫什么呀,规范一些啊,我们先造一个接口,这个接口呢,我称作比如说咱们就是目前演示针对于这个customers这个表的操作了,我们再造一个接口,接口呢是第一种规范的,先说我这个接口叫做customer给。这个接口它来定义规范,定义什么规范呢?用来定义我们针对于customers这个表的操作啊死接口用于规范针对于啊customers啊这个表的啊常用操作。
01:16
接口嘛,我们现在呢,主要体现的还是里边这些所谓的抽象方法啊,就是咱们说JAVA8里边呢,默认方法和静态方法,其实一般呢,咱们都很少用哈,一般呢,就是我们在系统的API里边啊,新更新的JDK的API,它里边有一些静态方法呀,默认方法了,主要是他来用,咱们自己其实很少写,那接口里边我们现在定义一些所谓的这个出方法,那么我们就得想针对于customer表我们都能做什么事呢?哎,我就省略了前边的public obstract啊,我们可以去往里边inser是不是一条数据啊。哎,那这个我们连接呢,也给它从外边获取,因为有可能你是一个链接当中就做好几个事儿,是一个事物出现的啊,所以链接传进来,哎,你添加的不就是一个customer吗?诶就这样写ctrl shift o一下customer呢,还没有咱们跟之前这个是一样的,诶B里边俩是吧,诶CTRLC转过来。
02:10
Do,新建一个包。哎,所以这个包呢,我这提成这个先后这个顺序呢,还是挺有必要的啊,要不这个包太多了,诶这个呢,我们是一个bin啊,然后在这里边CTRLV。站起来这两就行了啊好,这个呢,我们给大家导一下。这个呢是我们叫添加。哎,添加,嗯,别说添加一条数据了,这样说吧,说将。将咱们这个cast对象啊,添加到数据库中。嗯,就这呢,是我们这个叫哎抽换方法,抽换方法的话呢,其实它的作用是什么是可以描述的,虽然说没有方法体啊,只不过呢是放到具体的时间类上去提供方法体而已,它具体是干什么的是明确的,这叫天然后删除啊,Avoid叫delete delete删除的话我们可以说叫badd。
03:14
啊,连接第二啊,你告诉我这个ID是多少。嗯,这个方法的作用,呃,根据指定的指定的ID删除表中的一条记录。这套好修改word啊,叫up。那update这个我们也可以说叫by ID,嗯,连接呢传进来。第二,把指定ID的这一条记录呢,改成一个新的对象。嗯,这个例子举个例子啊,比如说我们这块呢,用了一个Java层面的一个对象,这个对象里边那个ID呢,假设是十,ID是十,那我们就把数据库表当中,你这个ID是十的。
04:07
哎,比如周杰伦后边呢,这是它的三个属性,把这三个属性呢,改成我们Java对象的那三个属性啊,其实这个ID的话呢,我也可以不传了,压ID呢,就是你这个customer的ID是多少,我就改你这里边呢,对应那个ID的那一条记录啊,是这样的啊,所以我这呢就直接update也可以。说修改数据表中的,他说针对于这个内存中的这个卡对象啊,去修改数据表中的记录啊。内存中的,诶,看对象,嗯,去修改,呃,数据表中的记录。诶增删改,然后呢查询。诶查询的话呢,我们可以就是直接叫get by ID吧,或者你叫get customer。
05:01
啊,By ID都可以。诶链接呢,传进来,然后告诉我一个ID。嗯,就是根据指定的ID查询客户customer。那查询对应的。哎,得到,哎,对应的这是它,哎这是我们是查询一条记录啊,你也可以查询多条记录,比如我们这块啊,这个就这就不是wide了啊,直接就是一个customer了,然后呢,我们还可以查询这个表中的所有记录啊,返回的是一个list customer,这要直接就get all了。嗯,盖头这块呢,我们就不需要呢,再去传其他的这个参数了,我就传个链接,你把这个表中的所有记录呢都告诉我。
06:06
哎,查询表中的所有记录。诶,构成的集合好,这个返回的就是格list了,行,那除此之外呢,我们还可以根据根据咱们刚才这个base do里边呢,它提供了一个叫get value,这个方法呢,我们也可以查询它的一些特殊情况,比如说查询表中有多少条记录,这个多少条记录呢,返回的是一个count,是一个数值型,这个数值型是什么类型的。哎,这个注意啊,是浪类型的,就是count星是吧,这个我们反馈的记录数首先是一个数值型啊,而且呢是非浮点型的了,它是一个long型,就有可能我数据表中存的数据特别多啊,这要大家稍微关注一下long型,然后我叫get一个count,诶你告诉我这个连接就行,那别的参数呢,就不用了啊。哎,这个呢叫哎返回数据表中,哎这个哎数据的条目数。
07:07
那这就是count行,然后呢,比如我们还有其他的诉求,我想查看一下这个员工表当中,这个最大的生日是多少。哎,就是这块到底写什么呢?主要就是看你这个,哎我们做的这个项目或者这个应用啊,你在客户端或者在浏览器端,你呈现的时候呢,到底你想呈现出来哪些特殊的值,哎,我们想呈现出来说哎查询这个表,说一共有多少记录,说这个记录当中说员工的最大的这个生日的值是多少,你有这样的诉求,有什么诉求,你这块呢,就提供什么功能就行,哎咱这块呢,比如说再提供一个date类型的,诶叫get MAS的一个birth。这样就行。那这个呢,我们就要返回啊,数据表中啊,最大的这个生日,这个呢,就是咱们之前也提到过啊,比如这个像这里边boss这个这个以他俩为例吧,他俩谁道呢。
08:03
这个党对对,这个党啊,就纯看那个数,你不要考虑说这个人生的早,这个党是吧,嗯,想多了,那就纯看这个数就行。好,这个呢是我们这个data,注意这时候呢,我们其实是SQ加data啊,当然你说我就给你生明成一个YouTube是不是也行,那相当于就是一个向上转型或者叫多态了哈,这个你就写成S狗就可以了,OK,这呢就是我们想提供的这样一些功能保存一下,这呢是个接口,也就是说呢,我们针对于customers那个表,我们就想提供这些功能,我就把它都定义成一些抽样方法,那下边要做的事呢,我们要提供一个它的具体的时间类了,这个时间类我就都写到这一个包下了。那都在这里边来提供了,这个呢,我们就称为叫customer do的一个具体的实现,实现呢,我们说叫implements,所以习惯上我们就写成叫。就implement啊,这样啊,Finish,然后让我们的这个类呢,去extend,继承我们的base deal,同时呢,咱们的customer deal。
09:13
那这样一实现的话呢,这里边我们就需要重写这些方法,诶这些方法就是具体的,我们你调用的时候呢,我们真的想添加一条数据了,真的想delete by ID了,诶这个呢,你就要提供这些具体的方法体了,那在这个方法体里边,诶,我们要使用的啊,就可以用到我们base do里边,诶定义的这个通用的增删改,还有查询的方法。哎,这是我们这个base do它的一个作用所在,所以习惯上呢,像我们说这个base do,或者我们一般呢,也说也称为叫do了啊do呢,它就叫data,或者叫data base access啊,Object叫数据或叫数据库访问对象,说白了就是我们封装呢,是用Java代码来操作数据库的这样的一些功能方法。那那我们具体的体现为在咱们这块呢,就是一个叫customer deal,就是因为我们是针对于这一张表的,那我们这里边如果有很多张表都需要进行增删改查操作,那么我们就需要让他们,咱们去提供是不是以他俩为一个基本单位,是不是提供一套一套的这俩风险。
10:17
诶,就是提供一个接口叫什么什么doo,哎,针对于某一张表的,然后你再提供这个接口的实现,那么让你这个时间类呢,都去继承为咱们的base do都去继承它,因为这里边的封装呢,就是我们通用的增长改查操作了,行,那下边呢,我们只是以这个customers这个表为例,咱们封装其中的一套,后续呢,咱们在这个web当中呢,呃,这个我这有一个举例哈,这个是咱们web当中呃封装的其中两个do,咱们base do就是咱们刚才的这个写法,然后这块呢,涉及到叫book do,因为咱们是个书成项目嘛,针对于呃书的一张表,数据库当中有一个表,就是书的表,我们去提供他的丢封装,关于它的一些操作,然后关于用户。
11:02
诶,我们可以去添加用户啊,删除用户啊,修改用户啊,哎,针对用户的话呢,我们有一个user do这两个都是接口,然后呢,我们再提供这两个接口的具体的实现类,然后这俩呢也都去实现咱们的这个,呃,继承咱们这个base丢在这里边呢,去提供这个具体有方法体的这样的一些操作了,哎,所以这块你点开这都有方法体。哎,这就是咱们后边呢,在书生里边要用的这几个do的情况啊,那下边呢,我们只是换了一个不是用的book了,咱们用的是customer行,那下边呢,咱们就来写具体的这些实现了啊。好,呃,这个呢叫insert delete update,其实这三个方法用的都是负类里边那个update了,哎,咱们总之呢,要调的最终啊,要调的是这个up date是,嗯,注意是base do里的啊,哎,这个操作根据这几个参数呢,咱们上面去填连接呢传进来circle呢写一下,这呢是一个insert,那就insert into customers,这个呢,要指明这个字段,Email birth from customers where,咱们是。
12:13
没有where了,诶诶诶隐色这引土就这成了写顺手了啊Y64是吧,哎一个两个三个,好好隐私引素进去,然后这个位置呢,就我们要填的这个张业符,这三个障碍符,那就取决于我们这个对象了,我们要把这个对象呢填现到这个数据表当中,那就是对象点get一个。Name get,一个email。Get一个birth,哎,这就相当于是执行完了,哎,这就是我们这个隐射的这个操作啊,那如果这个隐射操作你需要返回值的话呢,这个你可以写个返回值,因为咱们这update呢,不是也给返回了吗?根据需要啊,根据需要对你要说不需要,不需要这个呢,你就不用去处理它了,需要的话你这return下这个改成个in啊,改这个接口里边那个范围值叫int啊,嗯,这个呢,我们就不改了,然后这块呢,叫delete by ID啊,我们要调呢,其实也是它这个很full类update里就要看清楚啊,是我们这个base do里的这个方法。
13:17
这个呢叫delete delete from。Customers where ID等于对咱们通过ID来删啊,ID呢,不就是我们指定的这个ID吗?这就可以了啊下边。啊,还是up,第二个呢,是这个雷里的连接四针型的circle。Update customers set,嗯,Set呢?这个你有可能要改好几个字段,Name等于逗号,Email等于等于where。
14:01
ID等于根据ID呢进行一个update,嗯,所以这块一共有四个,按照这个顺序写test.get name get email get birth get一个ID,嗯,就是get ID呢是填充这个的,就是你这个customer呢,你的ID是多少,我就改数据表当中跟你ID一样的,那后边的几个信息就改成你这个对象里边的这几个属性值啊,就是这个意思啊,好,接着往下叫get customer by ID。嗯,这个呢,还是我们呃调负类的一个方法,此时呢,是我们叫看一下这里边的get instance。哎,这个。好,连接有了,这时候呢,我们返回的要创建的对象呢,叫customer,第2CLASS so后语句提供一下。Select这个咱们ID呢,也给大家查一下啊,Select ID name email不,这个先后顺序有要求吗?没有啊,咱们呢,因为在写这个get instance时候呢,是不是都用它反射诶,我根据这个名获取到的啊,所以这个呢就诶先后顺序就不重要了,嗯,From customers是where ID等于。
15:23
诶查询一下这样的几个字段啊,SQL也写这了,哎,这个呢就是我们把这个ID呢传进来,哎,就像你要查的是这个ID的好,这个呢CTRL1得到一个customer,把它呢做一个return那就可以了啊下边呢就是获取所有的对象了,这个呢就呢叫get for。类似那这个操作。嗯,连接有了这个也是点class。So后语句。诶,这个呢,我们查询这个表中的所有记录,ID name email birth from customers,没有过滤条件,所以这个呢,哎,可变形态呢也就没有了,哎,这返回的就是一个list。
16:13
哎,我们把它呢,返回清楚吧,这个嗯,接着往下,这个呢叫get count,返回一下我们这个表中的这个记录数,嗯,这个我们调的是那个get value的那个特殊的方法。嗯,连接有了死针形的一个circle select。哎,Count星哎,From customers没了,哎也没有这个其他的过滤条件了啊,所以这个参数呢,也就不要了。啊,然后呢,把这个呢做一个return,诶这个return的话呢,诶嗯,这块呢,我们返回的这是个long是吧,先把这个先去掉啊,诶这个return呢,反回来是个long,这呢本身也是long,所以这个呢就不用再做转换了。
17:01
行,再往下get max这个调的也是我们get value。诶,四针类型的一个circle select marks birth from,诶,Customers,行,这个呢,在咱们讲circle的时候呢,大家都比较熟啊,这个呢,就没有填充战士服的事儿了,直接就停,哎,下一个干掉。哎,保存好,那这块呢,针对于咱们customers那个表,我们要做的具体的业务,涉及到的一些功能,我们就在这都写完了,诶写完以后呢,说哎完事了,一定要注意啊,像写完这个操作以后呢,有可能比如我们这个select文写错了,单词写错了,哎这个呢,你必须得有能力给他检查出来,怎么办呢?是不是该测试了,哎把这些方法呢都测一下,看看靠不靠谱啊。
我来说两句