00:00
好,那关于这个数据库事物呢,咱们就告一段落了,呃,数据库事物里边呢,最后稍微比较难理解的就是关于事物的一个隔离性,隔离性这块呢,我们涉及到针对于三种问题,然后提供了四种隔离级别啊其实呢,对于我们实际开发当中来讲,咱们呢,其实主要用这种啊readid committed其实就可以了啊,就是你提交以后的数据,我们再才能去读啊,这个没有提交数据呢,是不允许用户读出来的啊,这个情况大家要清楚啊,OK,这个清楚以后呢,嗯,就可以了,然后接着我们来看下个问题,诶这个问题呢,是在代码上落脚点,需要大家关注的,前面的话呢,我们是诶讲了增删改查操作,然后呢,诶通过刚才咱们讲解这个事物呢,说考虑项事物以后,咱们把这个增删改,还有查的这个操作呢,做了一个升级,诶这不是我们刚才演示当中,诶通用的增删改,然后下边还有这个叫诶通用的一个查询,查询这块呢,我们只是提供了一个返回一条记录的,诶返回头条记录呢,这个打们没有写,那么真正在我们通过这。
01:00
这个后边web来讲,这个具体的一个,比如书生项目,包括我们在这个讲了框架以后,真正在企业里边,企业级里边呢,去应用的时候,当然企业级里边在应用,我们这个GDPC都被封装了哈,以这个harberate或者这个MY的这样框架的方式呢去体现了,呃,那么我们在web阶段呢,就还没有去讲框架,那到时候呢,我们要操作数据库呢,就得使用我们这个JDBC了,咱们就会把这些方法呢,给它也封装起来,那对外呢,体现为就是一个DAO。哎,就是个DAO,所以下边呢,我们就来去来提供这个DAO,新建一个包,这个我们就称为是一个二啊第二啊叫DA了,好在这里边呢,我们去提供一个类,这个类呢,习惯上我们就叫做do,或者你给大家称作叫base do也可以,Base就是基础的意思了,相当于我们提供这个do呢,主要主要呢是作为一个负类出现的。看这个我们叫base do或者叫do都可以啊finish这个呢,我们在这里边写一下这个说明,相当于是呢,封装了,哎,针对于数据表的哎,通用的操作,那么这个通用操作呢,其实就我们所说的增删改查这些操作了,那我们就封装在咱们这个贝斯do当中,哎,保存一下,那么具体该怎么去说明这个方法呢?其实就咱们刚才考虑上事物以后啊,通用的增删改,还有查询,诶把这个方法我们就直接拿过来,这是增删改的方法,诶,CTRLC。
02:32
这时候呢,咱们粘过来以后呢,这个注意是第二个版本,就是考虑上你这个连接呢,从外边传进来,就有可能我们有好几个自然改,你得保证是一个事物了,所以连接呢,我们就得是对外传起来,传起来给大家都串在一起,哎这样才行,诶所以这个连接呢,一定要用这个带参数的,呃,就把链接放到参数这样的一个update了,Ctrl shift f。行,这是其中的角色删改,然后查询这个。
03:01
来到这CTRLC。这样ctrl shift f这个呢,是我们返回一个对象的,那还要返回多个对象,再找一下我们之前写的这个query,找到咱们上面这个返回多个对象的。啊,到这CTRLC把它呢,再拿过来。诶粘过来ctrl shift f,诶把这个呢,我们再稍微的给它去动一下,这个连接呢,仍然也是从外边给它传进来,这样子这个链接把这个干掉干掉,最后呢,这个位置不要关,这个千万要注意不要关啊,哎,你从你在哪创业呢,你在哪块关,你这块呢,是从外边传进来的,你里边关了,万一下边还要有一个事物里边的一个自然改操作,你那没连接了成了啊好,Ctrl shift到F。那这个信息呢,我们也CTRLC。嗯,拿回来。这是用于返回表中的多条记录构成的集合。
04:05
行,那关于查询呢,我们这里边写了两个方法,增删改的话呢,我们就合并为一个叫update的方法了,就上面这个,那其实呢,我们针对于数据表的操作啊,在这来看,自然改呢,就用它其实包括呢这个创建和管理表,嗯,Create table啊,或者job table啊,Al table啊,其实用这个update的方法也是可以的,那用它也可以,就是它的这个通用性更强一些,就是针对于这种没有返回值的情况,有返回值的话呢,是返回一条记录还是返回中条记录,这是下边两个,那实际上我们在实际开发当中呢,除了这两个之外呢,还会有一些诉求,还会有一些诉求,你比如说像咱们在这个针对某个表,咱们至少还写过组函数吧,我select一下,我叫count清,我想查看一下我这个表,我一共有多条记录啊,这个也是很合理的,查询完以后呢,就是这样的一个结果,但是我们目前的话呢,这个查询返回的一条记录,返回多条记录功能集合,是不是满足不了我们这个诉求。
05:06
对吧,所以这块我们再写一个针对于这样的啊,像一些组函数操作的这样一些特殊行为,这样的一个查询,我们这块呢,再写一个方法public啊,这个暂时呢,咱们先写成一个word吧,这个我们叫get value,就是具体呢你想获取什么,这个咱们不清楚,毕竟咱们这是一个通用的一个副类啊,这里边我们也需要呢,把这个链接呢给它传进来。接着呢,你写一个具体的你个circle,不知道你到底想干什么,然后你有占位符,我们再给你填充一下站位符。这就可以了,嗯,下边呢,Get value,咱们再写一下啊,三个点,嗯,好三个点。显红大说这块报错呢,啊来这里边的话呢,我们连接点,哎,再回忆一下咱们当时写这个过程啊,Prepare statement SQL扔进去,嗯,然后CTRL1,但是异常,我们也先先抛一下啊,抛个比较大的CTRL1,诶,得到prepare statement,然后再填充占位符FOR0I小于x.lengths哎,加加,哎,点set object这些I加一,一定要小心XII,这要填充占位符了。
06:27
嗯,然后填上这碍符以后呢,我们通过点去excut,诶你现在是一个查询query是吧?诶CTRL1得到一个result set结果集,那对于咱们这种特殊的需求来讲,咱们查询到的结果呢,就只有一行一行一列啊,就只有一行一列了,所以这块呢,我们就使用一个一符是吧。这是上一个括号问题哈,If说,如果r.next哎,有数据,那说明我们查到了,那我就把查到的唯一的这一列数据呢给你返回R甲,Get一个object,这个就写个一就可以了。
07:06
你看像这种特殊需求呢,咱们这块呢,就只有这一列数据,这一类数据的话呢,我们需要做个返回,这个就别写Y了。编word了,那编写word写成什么呢?反类型,这个类型的话呢,我们现在呢叫select,叫抗星,这返回的是个数值,那我们比如像针对这个员工表,咱们查一下这个最大的员工生日是多少,那返回的又是个date类型了,那也就是说我们这个反馈的类型呢,是不确定的,不确定的话对我们第一反应呢,就是object,但object的话呢,后期你还得做一个强转,那我们呢,就想你是一个确定类型,对我们就可以考虑使用一个叫泛型,比如我这块就返回叫E类型,这个E呢,不是说我们有个类叫E了,所以表示你这个方法呢,我们得是一个反应方法,所以我这就写个一。那是要反应方法,然后这块呢,我们就做一个return,但这时候你return时object不一样了,做一个强转。
08:05
哎,这样就行,嗯,这呢是我们的这个操作,然后呢,呃,最后呢,你接着把这个诶JDBC啊U第2CLOSE这个资源,咱们目前资源的话连接注意千万不要关关RS关那就可以了。好,然后这里边我们把这个呢,Roses给大家干掉是吧?行,然后针对于我们这里边的这个操作,给它包起来round的位置啊,这个干掉,然后再来一个翻脸。哎,把这个呢,扔进去。这个呢,赋一个默认值。哎,然后最后呢,有可能你这块呢,出现异常了,不到这块处理完以后,在这我们return一个,诶return no是吧,来保存好这个呢,就是我们用于查询一些特殊值的一些通用方法啊。
09:04
完事。这个呢,你要说我2.0,因为咱们之前也没写过1.0啊,主要呢,就是考虑上这个事物的问题了,这个就写完了,这叫base do,这个do的话呢,我们回头不会去造他的对象的,它就只是用于给我们提供这个通用的方法,帮我们去完成后续的一些针对于具体表的一些逻辑了,所以我们就要base do了,那既然如此,我们把这个类呢,自然而然的就生明一个obsttra,修饰表示呢,你就是个抽象类,不能够用来实例化,虽然说它里边呢没有抽象方法。哎,当然呢,我们就是表示不能够造这个对象了。
我来说两句