00:00
接着看今天的啊。嗯,今天呢啊,咱们昨天做了一个查询啊,我们今天来接着做啊,一套这个正删改查。先给它完成了啊,你看昨天在搭完这个框架之后啊,我们今天再使用它就非常方便了,因为这个最起码咱们这个框架不用再重复答案了,OK吧,行,这个是昨天我们执行的结果啊,根据这个A0一来查出来一个人对吧?好,今天我们再来看。第二个需求啊,第二个需求。好,查询这个啊,学生信息表中所有的记录。啊,查询学生信息表中所有的记录,诶这个东西如果我们以前用JDBC来做的话,应该怎么写,我们昨天也是对比了一下这个JDBC的这个操作,对吧?如果以前是JDBC的话,大家回忆回忆怎么弄?
01:08
好,咱们来查询所有记录啊。好,首先咱们得这个执行这个SQL语句对吧?好执行SQL语句啊,我们之前JDBC的做法啊,啊,只要你执行的是一个查询语句,我们必然会返回一个结果集,是这样吗。RA。Do set,好RS对吧,这回咱们这个RRS对于游标的下移得是进行一个Y循环了,是这样吧,好,因为它肯定是有多条记录啊,2S点。OK吧,好,我们在这里边啊。循环几次就相当于我们表中有几条记录,是这样吗?表中的每一条记录我们应该用什么呢?实体类中的一个对象去封装这些记录的信息,没错吧?所以说你表中假设有五条记录,我是不是应该就创建五个对象去封装这五条记录的信息啊?
02:22
是这样吗?所以说我们现在啊,需要在咱们这个while循环里边见咱们这个student是这样吗。Student哎,我把这个student的这个创建放到while外面行不行。它必须是什么循环创建呢?OK吗?也就是说啊,诶一判断RS.x啊,还有下一条记录对不对啊,如果有下一条记录,我需要创建一个学生来封装你这条记录,诶循环完之后,诶,Well,循环如果还有下一条记录,我在干嘛?诶再创建一个学生OK吧,好,是这样啊,好,咱们来一个S点,这个set系列跟上面是一样的啊,给它封装一下啊。
03:07
这个上面一模一样,OK吧。好,这个做个标识啊,这个是咱们这个JDBC的做法啊。然后呢,这些学生咱们干嘛呢?是不是得打造到一个集合里边,对吧?List这里边应该是一个student,咱们来一个,比如说叫s list,等于new出来一个a list是这样吗?好,咱们来一个。S list.ad啊,咱们把这个S存进去。好,每一次便利出来一条记录啊,用一个创建一个对象去封装这个记录,然后呢,往集合里边添加这个对象,对吧?好,最终我们要拿到的这个处理好的这个数据,其实就是这个s list,没错吧。
04:01
OK啊,但是我们今天这个my Betty的做法。哦。执行SQL语句怎样呢?看啊。想了。还记不记得昨天呢,昨天咱们是不是直接可以反一个这个学生student呀,也就是昨天你从circle语句里面查的ID name age,根据我的返回值类型result type那个student类,好,你返回的这三个数据啊,我通过我返回值类型student会自动的创建出来一个对象,是这样吗?把你这个记录里边的这些信息啊,给它封装起来OK吧,好,那么如果我们返回的是多条记录呢,你每一次返回一条记录,系统都会干嘛呢?自动的给你创建出来一个对象把什么呢?
05:05
什么同学们都会自动给你创建一个对象,把这些信息是不是跟刚才是一样的,把这些信息封装起来,如果你再产生一条记录呢?哎,再创建一个对象,然后这些所有的对象干嘛呢?哎呀,对象多了,人家会自动的给你创建出来一个list集合,把这些对象封装起来,最终我们直接拿到的就是这个S。只不过区别是什么啊,区别是以前是什么,我们自己手动去创建的对象,去封装的信息对不对。然后把这些信息手动的给它保存到集合当中,是这样吗?那这回是什么呢?这回是my Betty帮我们去做了,我们直接拿这个s list啊剪现成就行了对吧?好,那么现在啊,我们来看一看啊,查询所有的这个记录啊,查询所有记录好,我们还是得使用什么呢?上面这个session对吧?啊,所有的操作都得使用它啊。
06:02
Section掉一个点select,今天咱不能忘了,这回你看哪个像同学。List不像,哎,这list咱们用第一个还是第二个同学们。来色后语句先写一下。See that,比如说ID啊,老师来一个这个get。哦,行吧,Perter是什么?是不是为后语句传递的参数的类型?哎,也就是说咱们要不要传一个参数。不需要吧,这个是不是就相当于是传说当中的无脑查所有啊,Select形from表,最简单的查询语句啊。哎,它没有查询条件,我们就没有必要给这条SQL语句传递参数,记住啊,你传的参数都是查询条件,OK吧,没有查询条件相当于没有参数,那没有参数呢?
07:03
大家想一想。行type,一会咱们再分析是什么啊。那select,咱们来list,那第一个还是第二个?那就第一个呗,对不?通过这唯一的一个参数指定一条circlel语句就行了,没有必要往SL语句中传递任何参数,是这样吗?哎,来一个test 1.geton,好,呃,按照老师刚才的这个说法啊,我是不是应该执行了这条SQ语句,给我返回的应该是一个什么呢?List对不对?好,我们现在来观察一下,点c like list,看一看同学们啊,给我返回的回来是一个什么list,它的泛型是。什么?随便填啊,有同学说老师泛型是E泛型啊,大家注意啊,泛型指的是咱们随便填类型对不对。
08:03
那咱们现在要填的是什么呀?Student对不对啊好。来一个啊。List student,好,这里边咱比如说来一个list OK吧,好,那么同学们就注意了啊,就注意这一点了啊,我们现在啊,返回值类型这个result type应该写什么。有同学直接说,啊,老师反这个头像点什么你们说?Lia。你想一想啊,同学们啊,我现在查的有ID,有name,有age,是这样吗?我查询出来这三个信息,你创建一个list,他对象能不能把这三个信息封装啊?不可能,所以说他还得是谁呀?
09:02
还得是。Student是这样吗?只有student里边有这三项属性信息能够通过set方法封装,他们是这样吗?OK啊,那也就是说,虽然我们最终这个所接受的这个结果是list集合,但是啊,它仅仅只是我们返回了多条student自然而然产生的一种结果,OK吧,多条student对象自动的形成一个集合,OK吧,好,在这块啊,咱们做一个标注啊。如果啊,返回的是多条记录啊,好,那么咱们这个result。Tap返回值类型应该写,为什么呢?
10:04
哎,写为咱们集合的泛型啊,泛型OK吧,好,所以说啊,咱们现在这个泛型啊,是student对吧?所以说啊,我们在这里边result type1定要写成student OK吧,好在这里边啊,我暂时以这个星来代替了,OK吧,好,我们现在把这个s list给它变利了啊。For,循环student as,咱们来看list。把这个S啊给它输出一下啊,输出一下看看是不是啊,我们返回到想要的这种结果啊。来看看同学们啊。哎,没错吧,咱们现在一共是几条记录啊。这五条没错吧,啊,A01到A005对吧?好,C星方表,这是我们底层接地BC所执行的情况,Total是给我们返回来这个五条记录对吧?行,这个是查询所有啊,你看看今天咱们写的是不是就简单了。
11:20
对吧,框架这种东西啊,只搭建一次,搭完了之后以后开阀,那真的是超级方便,OK吧,你想一想,如果用以前接DBC的话,你虽然这个需求也不难,对不对,就是个查询所有记录嘛,对不对,但是你要接DBC的话,你是不是首先你得考虑那三大组件,还得关闭那三大组件是这样吗?好,所以说啊,我们现在啊,直接使用MY啊,只需要啊重点关注这个语句就行了,OK吧,好在这里边值得说明的是什么呢?我们这个session啊。跟以前那个有一些个这个L流它不一样,这个session啊,通过我们观察,我没有这个close,是不是这个结果也有啊,也可以出来。
12:04
刚才咱们这个结果是不是也出来了,所以说啊,会给人造成一种误会啊,这个东西加不加都行,但是这个东西大家注意你要你要在做测试的时候啊,啊这个东西确确实实是加不加图性,但是以后真正我们这个程序运行在这个服务器中的时候,我们在封装这个工具类时候,那大家注意了,这session是必须得干嘛。必须。能理解吧,好,这个代表什么?Set closed close,最后close OK吧,这是必须的啊行,呃,查询啊,最基础的两个查询啊,写完了,接下来我们来一个添加操作。好,来一个student s等于new出来一个student OK吧,好,先来,来一个s.set ID,这个咱们得用肉眼去数一下是吧?这是到几了?
13:05
到A06了是吧。That name,咱随便再来一个。行,蔡徐坤呼声很高是吧?蔡徐坤,Set。23。行吧,来,咱们用这个session啊,同学们。我先写一条这个circle啊,写一条circle。Insert。Insert这回咱们这回标签是insert标签呢啊,就相当于你这个SQL语句开头的那个关键字,看到没,你就用哪个标签啊,Insert标签好,那大家注意啊,咱们这个insert。
14:00
传递的参数应该是parameter type是什么?Result type应该是什么?咱们是不是直接应该给他传递一个学生的对象对吧?学生的对象,因为学生的对象里边包含ID name和age这三项信息,是这样吗?也就是说啊,我需要给SQL语序,是不是应该提供这三项信息啊?但是这三项信息呢,如果你分别的给SQL语句提供的话,信息显得比较散,比较混乱,所以说我们把它干嘛呢,封装到一个S对象中,咱们是不是传递一个S对象比较方便管理啊。对吧,那再者呢,你要分别传它也不支持啊,这个今天下午咱们再说啊OK吧,先不急啊好,所以说啊,咱们在这你可以认为是什么呢,只能传递对象。可以这么OK吧,好,所以说咱们这个parameter type是不是仍然是这个student对吧?那result type咱们是不是应该返回一个in呀?
15:01
受到影响的条数如果是一的话,说明咱们新增了一条记录,对不对?好,但是啊,在这里老师需要说明一点啊。注意了啊。好在未来实际项目开发中啊,咱们这个select标签啊,Select标签。哦。这么说啊,所有的标签啊,都必须要写哪个属性呢?ID属性这个没问题吧,也就这个ID是必须得写的,一会咱们这个insert ID是必须得写的,对不对?好,但其中这个select标签啊,好。它有一个这个perter是这样吧,Parater type啊这个东西啊。
16:02
好,可以省略不写啊。省略不写,但是这个东西啊,咱们必须还得学,它很重要。因为什么呢?因为我们得学这个para type,我们得知道如何为事后语句传参数,这点是非常重要的,今天下午说的OK吧,但是啊,这个学完之后啊,这个东西咱们可以给它省略掉,能理解吧,但是如何传参数必须得学会啊,好。还有一个什么呢?它是不是有一个这个result type。啊,这个属性啊。这个属性是必须得写的,必须得写,不写没别的,就是报错。OK吧,就是报错啊好,那么对于。咱们的。
17:03
Insert。Update以及delete这三个标签啊,好。通常我们只写什么呢?只写ID属性好,其他属性啊属性啊一概不写啊,老师啊,咱们可以写一个这个permit type这个东西啊,在select里边省略掉,其实在所有的这个circle中都需要省略掉,OK吧,好,不写了result type用不用写呢?返回值呢?嗯。怎么着,就这么两个东西,这么乱吗?Result type属性必须得写,是属于哪个标签呢?Select标签,Insert标签刚说完啊,只写什么ID属性这个东西啊。
18:01
不能写,而且问题是什么呢?他也没有,你看result type是不是没提示啊,他也没有,那至于param type,它有,但是呢,我们不写,能理解吧,好,那所以说将来形成的一种结果就是什么呢?Select标签写ID,写result type。添加修改删除标签,只写ID啊。行这个ID啊,咱们就来个C。行,咱们来一个insert into t BL student。好,我们来ID name和。咱们来values,咱们是不是应该问号问号问号,但是今天应该是什么呢。哎,行啊,好多同学能说出来啊。用井号号括号对不对?好,咱们来看ID。Name和age是这样吗?哎,老师,为什么是这个ID name age,注意看啊,我现在把这个东西补全了啊,Perter type,咱们是不是一会要传递一个student。
19:10
咱们是不是一会要把这个S对象给它传递进来啊,它会把这个S对象给拆了,拆成ID内,至于怎么拆的,今天下午再说,OK吧,好,来,咱们来做一个测试啊。
我来说两句