00:00
嗯。来,我们把昨天讲的内容给大家回顾一下啊,啊,昨天主要呢是讲的买be啊这个框架,然后像买be利这个简介啊,它的一些这个发展,然后呢,它的一些特性啊,去哪里下载,那这些东西呢,我就不再给大家去说了,好吧,啊,你这个直接去参考我们这个word文档了,去看一下就行了啊我们来说一下这个具体使用啊呃,讲了一个my VE hello word啊,就写了一个这样的一个小程序,然后呢,在这个话题里面的话呢,我们主要是学会。怎么去使用我们这个买be啊,那么也就是我们呃,在使用的时候呢,需要关心的两个重要的配置文件,以及两个比较重要的一个对象啊,那两个配置文件的话,一个就是我们的全局配置文件啊,另外一个呢,就是我们的搜映射文件啊,你把这两个写好以后,然后呢,其实你就可以基于我们的搜ql session啊,这个对象呢,去帮我们完成一个就是把它操作啊,但是呢,我们也跟大家说过,这个基于搜session这种操作呢,它有一些不好的地方啊,最终呢,我们教给大家的是使用这个迈接口开来开发啊,那么如果我们要使用这个迈接口开发的话呢,我们就需要先给他去写上一个接口,那么这个接口呢,其实就是我们以前啊写的那个DAO啊,只不过呢,在买贝里面,我们把它叫成了matter接口,呃,迈迈接口写完以后呢,我们需要去完成两个绑定啊,完成两个绑定,哪两个绑定呢?第一个绑定就是你的接口与映射文件的绑定,那么这个绑定呢,是通过映射文件中的namespace啊,就是在这个。
01:33
标签中的name space啊,指定成迈接口的一个全类名,这样就给它绑定起来了,然后第二个绑定的就是啊迈映射文件中的真删改查标签啊,它里面的这个ID呢,你必须要指定成我们map接口中的方法名,在这样的话呢,就把这个每一条搜QL语句与这个接口里面的每个方法给它进行了一个绑定好,把这些绑定完成以后呢,我们还需要做一件事情,就是我们需要获取到迈接口的一个代理时材类对象,因为在买be里面我们是不需要去写那个时项类的啊,买白呢会通过动态代理的方式帮我们去生成一个代理的时项类,那么我们只需要把这个代理时项类给它获取到,获取到以后呢,诶,你就可以去调用你这后里面的具体的方法来帮助我们完成这个正删改查操作好,所以说呢,整个这个hello word里面呢,呃,第一个写的那个呢,主要是让大家去了解啊,然后呢,第二个我们写的micro接口的这种开发,那么你大家是必须要掌握的,而且我们在中间呃讲那个。
02:33
当初传递的时候,我们再去看他这个源代码的时候,最后我们是吧,得出来一个什么结论来,你记得不记得,记不记得,就是你使用的是这个micro接口开发,但是呢,在底层它是不是又转化成了我们搜狗session相关的这个操作了吧,还记不记得呀,就是我们啊拿到这个处理好了那个参数以后呢,我们看到它调用的是这个s session.select是不是又调了一个这个方法对吧?所以说呢,你在底层呢,我们使用的是这个map接口,但是呢啊,在底层的话呢,MY还是要给它转化成so相关的这个API方法去操作的,能理解吧?啊这个的话我们知道就行了啊,我们也不需要去深入的研究它的每一个方法,具体是怎么去做的。
03:17
听明白了吧,OK,好,来我们再来往下看,那么下个话题呢,我们讲的是买的一个呃,全局配置文件,在这个全局配置文件里面呢,首先我们要知道诶这个配置文件它起什么作用啊,就是给大家翻译到这的啊,它包含了很多这个S设置和一些什么properties属性的一些什么配置,然后呢,可以影响我们买VE的一个运行行为啊首天的话呢,我们大概讲了properties,诶这个呢,就是来做一些属性的配置的,对吧?然后呢,他也可以帮我们去引入一个诶外部的一个属性文件,然后呢,我们再通过dollarra大括号的方式呢,诶再把那个属性文件给它什么读入进来。
04:02
啊,这个的话,其实使用起来跟这个spring里面那个呢也差不多啊啊第二个讲的是这个setting,那么这个setting就是一些什么设置了啊啊那么在这个3000字里面呢,我们讲了一个啊,就是什么东西来着,讲了一个什么东西啊。是不是那个映射下滑线在到我们的头部命密吧,对吧,就是啊,将来等你查好这个接口集以后,如果说你要去封装成一个对象啊,那么默认情况下的话呢,它这个名字不一样,它是给你啊映射不过去的,但是呢,我们开启了这个配置以后呢,它就可以把数据库里面下滑下命名的这种方式,然后呢,直接给你啊映射成诶Java类中驼峰的这种方式了,能明白吧,OK,好,下一个讲的是我们的类型别名啊,叫做type al,那么说白了呢,就是为我们的Java类型呢去取一个别名啊,然后这个别名的话呢,它有这样的特点,就是呃,比较简洁,然后呢,我们再去使用的时候呢,就可以使用这个别名来去代替我们具体的那个Java类型了,这个也是比较简单的啊好呃,再一个呢,就是讲了一个environment啊这个环境。
05:10
这个环境的话呢,我们现在也是知道怎么去把它配出来就行了,至于它里面的这个事物管理器,还有这个数据源啊,我们也不需要深入的研究了,因为给大家说过,等我们使用了这个support以后呢,我们会把他们全部都交给我们的spring框架去处理,然后呢,买be呢,它就不再负责这些事儿了,听懂了吧,但是呢,现在我们单独讲买be呢,我们还必须得去使用的啊啊,最后一个讲的是我们的micros in罄。呃,这个maps的话,就是帮我们来去引入你的搜后映射文件的啊,我们既可以啊单个去引入啊,单个引入的话呢,你只要把这个位置啊,就是它这个映射文件所在的位置给它指定对了,那么它就没什么问题,但是呢,我们跟大家分析过,如果说我的映射文件特别多,你每一个去引入的话也比较麻烦,所以说呢,我们就可以使用一个批量引入啊,通过这个package的方式给他指定一个包,那么他会把这个包下面所有的映射文件的批量给你引入进来,但是这种情况下,我们就必须得遵循遵守一个什么呀要求啊,什么要求呢?必须得同名同位置,这个还记得吧啊,必须得同名同位置啊,如果说你不满足人家这个要求,那么你的这个映射,它是什么找不着的?
06:22
啊,这是我们讲的全局配置文件啊,然后我们再来看一下讲的下一个叫做映射文件,那么对于这个映射文件来讲的话呢,它主要就是诶,指导着my bet如何帮我们完成这个真山奶茶的操作啊,那么也就说白了,在这个印刷文件里面呢,我们主要就是来去配置我们的搜O语句的啊,主要就是配置我们的Soo语句的啊呃,那么昨天的话呢,我们已经把这个真山改茶啊这几个标签呢,呃,都给大家讲的差不多了,那么今天的话呢,我们还要接着往后面去讲啊,其中还有一个result map啊,这个东西比较重要,我们也要给大家去讲好,那么对于这个增删改查操作来讲。
07:02
首先我们要记清楚了啊,你做什么操作,那么你就要去用到对应的这个标签,能听懂吧,这个大家一定要记住啊,别你到时候这个做一个真删改操作,你还是用的这个select的标签对吧?啊,你不能这么去做啊,你是你一定要这个跟你的操作对应起来,你做真删改操作,那你就使用我们的呃,具体的一个标签来去完成。好吧,这个时候给大家强调一下,因为可能昨天有同学写的时候啊,也有可能应该有同学遇到这样的问题,说诶,那我用水拉专间完成了,真删改好像也行,有没有遇到这样的写的时候没注意,然后呢,都写成select了。没有是吧,啊,没有那就更好了是吧,有的同学的话呢啊,你还是要把它改过来的,能听懂吧啊有的话呢,你还要把它改过来的啊,因为我们后续你再去使用的时候还是会有问题的,听懂了吧啊所以这个大家一定要记住啊。啊呃,那么在写完了这个真删改查以后呢,我们又研究了一下,呃,如何在这个增删改操作的时候,获取到对数据库的一个影响条数。
08:07
啊,这个的话呢,就是直接在我们接口的方法中,是不是声明这个返回值类型就行了吧,对吧?啊,其实人家本身买白呢,就会把那个结果给你返回回来,那么我们所要做的事呢,就是把这个接口给它接受回来就行了,因此呢,我们就直接在接口的方法中去声明那个返回值类型啊,我们就可以把它介绍回来啊,这个比较简单。然后呢,呃,紧接着又研究了一个获取我们的这个组件值,还记不记得记得吧啊,对于这种支持组件自增的数据库来讲,那么我们只需要通过两个设置啊,一个是使用这个自增的组件啊,把它设置为错,另外一个呢,通过一个keep property呢来去指定一个属性啊,然后呢,就是你用对对象的哪个属性来去接收我返回的这个组件值啊,我们就可以把这个组件值给它拿回来,那么具体的原理呢,首先呢,也给大家去简单的去写了一下那个代码啊,我不知道你们下去有没有自己试了一下啊,就是我们再去预编译搜FA语句的时候,我们除了要给他指定一个so语句,还要再给他指定上一个值,对吧,就是让他帮我们返回那个组键值,好,然后等你执行完这个so语句,比如说我们通过这个prepared statement,你去调用一个呃,S update,把这个方法调用完成以后呢,就代表这搜索语句已经执行完成了,那么接下来呢,你再去使用我们的prepare。
09:31
Prepare standard啊,然后呢,去要干嘛呀,来get一个什么加的case,是不是把它拿回来了。还记不记得对吧,昨天这个代码是给你们写过的哈,我还说你们下去以后呢,最好把它试一试,试了没试了是吧?啊,那试了就更好了,对吧?啊,写到哪写到这个位置嘛,对吧,我说你们自己写个GDPC的操作试一试,看看能不能把它拿回来,肯定是可以的,明白了吧,OK,好,那至于这个东西的话呢,大家现在啊,以前你不知道没关系,但是呢,我讲了以后呢,大家还是要把它记住的,听明白了吧,就是你必须要知道它这个底层到底是怎么去做的啊,最终的话呢,你要记住在买be列在买be里面,我怎么把这个组件值呢,给它拿回来。
10:17
听懂了吧,OK啊,这个说完以后呢,我们紧接着就说的是一个参数传递这个话题,那么首先呢,给大家讲了一下参数传递的几种方式,嗯,我们大概的讲了有这个五六种是吧?啊,每一种的话呢,都给大家做了一个基本的演示,然后呢,这里面最重要的单个普通类型的参数,我们是可以随便去取值的,然后呢,多个参数只要是多放,它就要封装卖,明白吧,只要它封装卖法,那它的K呢,就是零一,或者是它零它二,对吧,你把这个结论记住,将来你取值的时候,你就能把它取出来啊,那么在讲完以后呢,我们又说过,其实这种方式呢,虽然说我知道了你是怎么处理的了,那我也能正常去取这个值,但是呢,用起来呢,还不是那么顺手,对吧,如果我参数很多的话呢,我就得去记一下这个每一个参数的顺序是什么,然后呢,我才能通过这个0123啊去取你这个参数A,此呢,我们建议大家去使用这个什么命名参数。
11:17
就是给你的每一个参数呢,都诶取一个名字,然后将来他再去封装这个map的时候呢,诶我们取好了那个key,他就会什么呀,取好了那个名字哎,就会封装到我们的map中了,那么将来我们再去取值的时候,我们就会使用诶自己指定的这个名字来去取这个值了。听明白了吧,这样的话呢,我们就不需要再去记那个啊参数的顺序是什么了,你就直接根据你取好的这个名字来去取它就可以了。能听懂吧,好,那么顺带的说一下,我们带着大家呢,去看了一下命名参数,它底层的一个呃,源码它是怎么处理的,这个大家下去以后都看懂了吧,对吧,就在下面啊,我们先来看一下,OK,其实就是这样的一个方法,然后呢,呃,你们可以把整个流程都去走一遍,或者说呢,诶你就拿上我们昨天在分析的时候给出的这几个数据,然后呢,你再去把这个方法呢给大家看一下,然后呢,你能最终啊把我们这个P诶得到,然后呢,你能分析出来它里面的数据是什么,那么其实这个整个的参数的这个源码,我们也就能把它看懂。
12:22
好呃,这个就不要多说了啊呃,然后下一种方式呢,就是我们的pogo啊,就是如果你参数很多,然后呢,正好这些参数呢,都是属于某一个对象的属性,OK,那你就干脆把它封装到一个对象中去传递,这样的话呢,我们取值的时候就直接通过对象的属性,是不是把它取出来了对吧?哎,这种方式大家也要知道啊啊啊,这个位置的话,再来给大家稍微扩展一下啊,扩展一下就是还有一种情况,也是这个参数很多的情况下,明白了吧,参数很多啊,这是一个前提,但是呢,这些参数呢,它并不属于某一个这个PU周对象的属性,也就意味着它们都是一个什么散着的,它不是不属于某一个对象的这个属性,那么像这种情况下,宝宝,我们可以使用map去传递,明白吧,就是你把多个参数呢,封装成一个map传递,这个我们中间是不是也讲过了,对不对啊,但是呢,呃,封装map的这种情况呢,我们只适用于就是使用。
13:22
频率比较少的啊,比如说像这个多个参数,我可能就会用一次啊,或者用两次我就不再用了,那你就直接给它封装成一个麦回去传就行了,假如说诶我这个参数很多,但是呢,我的这个使用的频率还很高。对吧,那么这种情况下,每一次去都让我去封装map,其实也比较麻烦,那么我们可以怎么做呢?诶,那你就临时把这些参数呢全部封装到一个poo中,就是你先去写一个poo,把它封装起来能理解什么意思吧,将来你再去传的时候,你就可以直接使用这个poo了。理解了吗?好,有一个最典型的应用,我们就可以这么去做,什么应用呢?就是做分页操作的时候,大家来想想,哎哟,你们不知道啥是分页是吧?啊,应该也知道吧,啊,应该也知道是吧?呃,讲数据库的时候应该讲过这个分页吧,但是我们在这个Java web里面没有具体做过是吧?OK,这个没关系了啊,这两个我给大家分析一下,这个分页操作的话呢,其实呃,在我们这个页面中啊,大家应该都见过那个分页吧,对吧?那你想一下啊,在页面中大概的一个分页效果是这个样子的啊,简单写一写啊,有什么啊,首页。
14:34
对吧,啊什么上一页,然后中间就是比如说12345对不对,然后呢,有什么下一页,有什么什么尾页,大概就这个样子的吧,那么其实在这里面大家注意哈,它信息是特别特别多的,这里面有什么信息呢?我们将来可能会需要用到,诶你当前页是在哪一页,你每一页要显示多少条数据,这也是一个,然后呢,我总共有多少页,我总共有多少条数据,然后呢,当前是否有上一页,是否有下一页。
15:07
明白吧,等等等等一些信息,其实都是跟我们分页相关的,那么这些信息的话呢,我们建议大家呢,最好在我们的后台呢,都给它算出来,你不要把它放到我们的JSP里面去运算,就尽量不要放到JS里面去运算,能明白吧,那么现在我们就来想,这些数据的话,我都在后台给你算好了,那么算好以后的话,我要传递的话,其实就比较麻烦了,对吧,一传就这么多,而且分页的话呢,基本上我们每一个操作都得去用,所以说呢,我们就干脆把这个分页的这个信息呢,就给它封装到一个,比如说写一个配置类,在这个配置类中呢,你就把所有的这些信息呢,诶都一样属性的方式给它定义进来,那么将来你再传递的时候,你就把这些数据呢,全部分装到一个配置对象里面,直接传一个配置对象是不是要比较方便一点,嗯,能明白这个意思吧,啊所以说呢,这个位置的话呢,我们就是还有一种情况就是啊一一种就是已经写好的po JO直接去用,另外一种就是我发现参数很多,但是呢,我用的频率呢也比较。
16:07
好,那我就可以啊,再去把它封装到一个poo中理解吧,那么一般我们把它叫做什么叫做这个to,啥叫做to呢?叫做transfer object,就是一个数据传输对象,明白了吧?哎,就transfer object啊,Transfer就是传输嘛,对吧?Object对象啊,就是一个什么数据传输对象,好吧?啊,这个给大家扩展一下啊,OK,呃,那最后一个呢,又给大家去说了一下这个collection啊,或者是我们这个array啊,那么暂时的话呢,我们还没有给大家去演示这种效果,但是呢,我希望大家呢,先把这个结论先记住啊,如果你用的是数组,那么将来我取值的时候就是用小写的R,如果我用是collection,那么比如说list或者是set,我们都可以使用一个小写的collection来去取,那么假如说我确定我当前的集合就是一个list。那我就可以使用collection,或者说小写的list也是可以的,好,那么大家呢,暂时先把这个结论先把它记住,然后呢,哎,今天呢,我们再去讲这个动态搜狗的时候,其实就会用到我们的这个集合了,那么到时候的话,我们再来跟大家去说一下,明白了吧,OK。
17:16
啊啊,那么这些呢,就是我们昨天给大家去讲的内容啊,这个其实东西也不是很多对吧,都是一些买Dis里面最基本的一些操作啊,啊,一些比较这个高级一点的应用呢,我们今天才会给大家去讲到啊,像这个自定义映射啊,以及我们的动态烧烤啊,也是买白丽里面非常强大的一个特性啊,这是我们一会要给大家去讲的啊,OK,那我们就先回顾到这儿了啊。
我来说两句