00:00
好,接下来我们说一下my base斯纯铸简盘的整合方式,我还是来参照my base斯的这一块get HUB的这个文档quick start来整合呢,首先还是三步走,首先要导入MY杯斯的boot spring boot start我们之前已经导过了,而且呢,人家这一块提示,如果我们想要整合MY杯,创建MY杯spring boot这个应用,其实我们快速可以使用spring的初始画像的,也就是说我们以前呢,是通过找到my base的getub地址,找到它po文件的坐标,我们其实整合马威斯在spring boot的官方这个初始化向导里边选中这八版本,然后呢,我们来在circle里边,我们也能找到马贝斯这个框架们一选中也是可以来整合进来的,两种方式呢都一样,我们都很快。好,那现在呢,我们接下来再来以纯注解版的方式,那我们现在来看下边,首先呢,我们来准备上一张表,我们来创建上这么一张表,好,那创建这个表呢,我们也在这儿准备上一个新的表,这个这个SQL。
01:00
句呢,它不不是兼容马SQ的,我们来给它改一下INT11位,它呢是主键,然后呢,我们这个name值我们假设呢是30位,然后呢,Ver这个也是30,这个呢也是30,然后呢,这个是primary auto啊inment OK,没问题,那这个表呢,准备好来给大家创建一下,那么第一步呢,我们先来创建了一张测试表F5,那么这个表里边呢有CT,这张表没问题,接下呢,我们再来准备一个扎宾,来准备封装这个表里边的数据,CT走,然后表里边的所有的数据呢,包含这么几项,我们直接把这几个属性拿过来就行。来直接标注at datab,好,那准备好了以后呢,接下来我们再要做的事情就是我们来写一个member接口来操作数据库就行了,那这个接口呢,我们就叫city member。接口在这c member,好,然后呢,我们首先member上来呢,我们先来标注member注解,哎,这是一个我们来操作数据库的member接口,接下来我们要做的就是好,我们来写第一个public city给我们来查出一个city,比如呢,我们就要GET8ID,我们按照ID呢查出一个程式,那我们可以来传入。
02:23
浪类型的这个ID,然后我们来标注以后呢,它这一块波浪线提示说我们的这个GET8ID没有指定statement的这个插,如果是我们以前的方式,我们必须呢在这创建一个插面,现在呢,我可以来写用纯注解的方式and select,我们以select标签,相当于以前呢,我们在这个插里边这一块该怎么写我们还怎么写,所以我们来到我们的这个city member里边,我们只需要在select这个注解里边来写select芯from我们这张表。哪张表呢?那就是我们的CT这张表,然后where ID等于井号大括号ID,所以这样的话呢,我们从头到尾就不用在这儿,因为我们上一节课刚杀掉了这个马贝斯菲格文件,如果我们以后所有的接口我们还不用写这个map文件,相当于我们就是没有任何配置文件,用纯注解的方式就过来了,所以我们现在这个纯注解来测一下,看能不能我就把那个全局配置的来删了,来到这儿来,我们再来写一个测试方法。
03:32
Public public,我们就叫返回这个city city呢我们就叫GET8GET city8id,那按照城市的ID来找到它的这个城市。复制一个同样的返回杰省数据数据at一个get map拿过来get map我们就叫city吧,然后接下来我们来调用相应的service,我们再来准备一个city的service,好,我们这个写错了,单词写错了,我们来改一个名city的service at一个service,它是我们的业务逻辑组件,然后呢,我们让它注入city的member at一个owa,然后我们来准备一个返回一个city get by ID,这个city呢,At一个来,我们不用at,然后呢,我们直接调用city member,点一个get by ID就行了,因为我们呢,现在是要传入ID,我就传入ID,然后我们来返回这个CT,我们现在这个map呢是纯。
04:49
解的方式,我没有给这个member准备circle映射文件来看他能不能工作,来到这,我们来注入我们的city service c的service c service来查询城市服务的这个组件,好,C service里边呢,它有一个方法get,把I dadd传过来,然后呢我们再来返回出去。
05:11
我们就可以来查到城市来重新来启动一下。好,启动起来没问题,然后呢,接下来我们来访问一下这个CT,那先来登录123456。来访问CT问号ID等于一的回车,哎,那这一片空白,原因呢,就是我们数据库这个表里边没有数据,我可以打开,那添一个数据,我们就来随便写aab BB这个BBBCCCC,好来准备好一个数据,我们来保存一下,来查询一下,刷新好我们发现呢,这个数据就查出来了,没问题,那我们的纯注解版也是可以工作的,然后呢,包括我们还可以写混合版本,什么叫混合版本,就是呢,假设我们这还有一个方法,如果呢,这个方法比较麻烦,我们so语句特别复杂,里边还有各种if条件判断,那咋办?那我们就可以专门给它准备一个SQ映射文件来进行匹配,比如我们还有一个方法,假如呢,这个方法呢,我们就来写一个插入吧,Insert吧,我们这个insert来准备保存一个CT,这个CT的这个数据呢,我们来放到这儿,然后呢,Insert这个方法呢,它比较麻烦,所以我。
06:42
接下来可以专门来准备一个map。就叫c member点插面,然后呢,把我们整个这一块复制过来,C member这CTRLV也粘过来,然后呢,这一块去掉,然后呢,它的。这个一定来找city member。
07:02
把name绑定上city member city member,接下来大家看啊,我们的c member这个东西,第一个呢,是以注解的方式整合过来的,然后呢,我就只需要把第二个方法在以配置文件的方式合过来,我们在配置文件里边一配就行了,那我们来写一个insert ID呢,那就是方法名,我们这个只是一个插入,没有返回值啥的,那我就来写insert into,我们哪张表into。Insert into我们这张city这张表,我们要插入哪些?呃,字段呢?来举个例子啊,我们要插入的是name state country这几个字段,其他字段不用插入。Name。State。Country,然后呢,这些字段呢,我们可以给它加上这个票号,这个识别服务。把它当成一个呢小字符串,然后呢,接下来values y的值,这些值是什么值呢?当然是从city这个里边取出来的,所以接下来井号大括号,我们city呢,这个城市里边呢,它其中呢就有name的name的值,你就叫它取出来,假来第二个呢,井号大括号,那们CT这个对象里边也有state,第三个井号大括号么?CT这里边呢,也有我们的count,所以呢,假设我们某一个方法很麻烦,我们SQL语句超长,还有一堆判断,我们就可以把这个写到配置文件里边,这样呢,我们注解版的也能生效,配置文件版的也能生效,来测试一下它的这个插入,来到这个里边来测试一个插入。
08:47
比如public,我还是返回CT吧,比如我们在这一块测试,就是刚才插入的是什么,我们就把这个数据呢给你原封不动的返回,你给我发这个请求的时候呢,传入C这个对象,At一个post map,好嗯,插入呢,我们就是post请求,以post请求rest分割保存过来,然后呢,Return你这个city,你给我传过过来是什么,我就整过来是什么,假设我们city service专门有一个save city的这个方法,把我们这个city呢放进去来进行保存,来把这个方法呢创建出来,那这个方法呢,自然是调用c member的保存方法,点insert方法来进行一个保存就行了。好,我们来测试一下这个方法能不能使用,那保存呢,我们就以postman的方式来测,我们可以用postman方式,用要发posts请求我们页面的话,你再来写表单就。
09:47
比较麻烦,拿POS慢,直接来发一个POS的请求。当发请求前我们还是需要登录,要不然我们所有的请求就被给拦截到了,登录一下123456,那登录一下以后呢,我们来记录一下他当前登录的这个解CID刷新一下。
10:11
随便拿一个东西来,他登录的这个信息慢HTMMR来登录信息里边呢,有解session ID标志,它是登录了,好把这个解CID复制过来。来使用曼来发送请求,看一下啊,那在图里边呢,我们来准备一个解session ID,我们登录后的,好没问题,来发送的是CT请求,而且呢是post方式,那post方式我们要带的数据是哪个,那我们就来带,相当于是表单数据form,我们就模拟表单提交,表单提交里边呢有name name呢我们就叫啊CCCCC,然后呢还有state。我们就叫aaaa,然后呢,还有它的CTR这个属性,这个属性呢,我们最好复制过来,不要写错CTRL。
11:04
然后呢,我们就加QQQQ好来准备好来点一个发送请求send。然后呢,他给我们报错,哎,然后呢,又是我们这个模板引擎解析有问题,那现在不是让他进行页面跳转,所以我们直接response body,那让他返回一下,那这个数据呢,有没有插入过来,虽然它页面跳转有问题了,数据看看啊,诶插入进来没问题,那再来插入一条数据进行测试,咱以们会发现呢,我们这个插入也没问题了,我们这个重新启动起来,那么就得重新再来写一遍,那我们直接为了防止这个我们每次登录,我们把这个一放行好,这个CT呢,我们在这一放行就行,然后放行了以后呢,接下来我们来测试啊。不用登录也可以,那么现在来重新保存,我们来送的,好,我们重新保存呢,给我们返回到这个数据没问题,经保存到数据库了,来刷新好,我们发现呢,这个CCCC已经到了,那问题呢,就在于我们希望呢,它返回的时候,数据库里边刚才插入这这是三号记录,他顺便呢也把三号记录的这个ID也返回,把这个ID也返回,而我们现在呢,返回的这个ID是空,空是因为页面提交的为空,那怎么返回ID呢?在马贝蒂斯里边以前有这么一个写法,在insert标签里边有一个use generated case,写一个true,相当于呢,我们现在要使用自增的这个主键,然后呢,自增主键的这个属性叫什么?我们CT这个,我们的CT这个类里边封装自增主键的这个属性名叫ID,所以我们在这呢写一个ID就行,这样的话呢,只要我们保存的这个数据,它呢,就会把数据库里边的自增主件默认的给我们重新放回,放回我们的。
12:49
传入的这个CT里边的ID属性里边,我就能拿到自增主键的值了,看一下啊,我重新再来保存一个,好,我们发现呢,拿到自增主件四,我们再来保存,拿到自增主件五没问题,所以我们呢,我们发现那混合版也没有问题,我们呢,既可以在一个这个map里边用注解来标注某个方法,也可以呢,把另外一个方法配置在配置文件中,混合模式也没问题,所以接下来随便使用那注解模式呢,我们也给大家看到,诶,那我们现在能不能把这个比较复杂的东西,我们用注解模式写出来,比如我们现在呢,不写这个配置文件了,配置文件里边呢,他也不配置了,那这个音色的方法呢,我希望以注解的方式写,那还是一样,那有有我们音色的标签,那就有音色的注解,我们把这个注解呢,写过来以后,把它的值直接拿过来。
13:44
拿过来,但是这样一写过来以后呢,功能还不够,为啥呢?因为这个in色标签里边,它还有一个use generated key和key property,那这一块功能不够怎么办呢?在我们买base里边还有一个叫标签叫options,相当于我们这个标签的insert,标签的这个设置项,这个设置项里边呢,其中我们use generated key我就给它调成处,然后呢,接下来还有一个key property,那接下来呢,就可以给它起名叫ID,所以呢,以前在标签位置能调整的这个所有的这个属性下,那们都可以使用这个options来重新调整,那相当于呢我们这个map,现在呢,两个方两个方法都用注解来写了。
14:31
也是没有任何问题的,以后呢,注解标签随便用。你现在来启动起来。好,启动起来没有任何问题,我们来测试一下你的保存,重新测试send的,好,我们的六七没问题,我们所有的设置项都是对的,如果我们把这个注掉,那它的这个自增ID又返回不过来,这就是我们的注解版,整个整合马威利斯,那最后呢,我们最终来给大家一个最佳实战,如果我们要整合马贝丽斯的最佳实战,那最佳实战呢,就应该是我们来引入步骤呢,是引入马贝丽斯的starter,这是我们的第一步。
15:12
Start然后呢第二步,然后呢所配置咱们这个application压面中,然后呢我们可以来指定map location位置位置即可,我们只需要指定这么一个位置,然后呢我们混合版就有了,因为我们想要混合版最终要扫描到这些插麦,所以我们这一块呢必须有这个插的位置,然后呢接下来第三步来编写map接口并标注map注解注解然后呢接下来第四步,我们接下来呢简单方法简单方法我们直接注解方式注解方式,然后呢复杂方法方法编写编写什么呢?编写我们这个map点插进行绑定警示,这样我们开发起来呢就会非常方便简单。
16:12
开方法呢,直接一句话搞定复杂方法,我们再来写上配置文件,你想要写上配置文件,让配置文件生效,一定得写map,拍location的位置。另外呢,大家如果觉得我们每一个接口上都写at map at map,你觉得太麻烦了,那我还有一种办法,叫我们可以在某一个配置类上有一个专门叫map sky,这呢相当于我们来扫描map map在哪,我们可以来指定上它的一个包。那这个包下呢,都是map com.at硅谷点in这个包下呢,假设都是map,那我们以后呢,每一个这个上面就可以不用标注map,但是呢,老师的建议呢,还是给每一个方法标注上也行,这个呢拿过来。
17:03
可以使用它简化其他的接口,其他的这个接口就可以不用标注门at member注解。那么来测试一下吧。我们来把这个包。Reference,拿过来。让它在这一放啊,Map sky准备好,然后我们把这两个接口的map都注掉,来看功能还能不能继续生效走。好,现在我们项目启动起来,来重新测试,发请求走,来我们继续呢,还能找到啊,所以没有任何问题,但是我们可以通过。这种方式,那就不用给每一个里边都标注map,以前我们不标就出错了,这就是我们来整合马贝利斯。
我来说两句