00:00
前面呢,我们使用逆向工程为我们的商品服务生成了基本的增删改查代码,那么接下来呢,我们就来测试一下这些代码,但是测试之前呢,我们先要在我们这个商品服务里边整合马贝蒂斯plus,因为我们是使用马贝蒂斯plus来操作数据库,包括生成的这些B们来可以看一下,生成的这些实体类呢,都用的是我们马贝蒂斯plus相关的一些注解,好,那整合马贝蒂斯plus呢,我们主要分为这几步,我们来记录一下。好,我们先要做的第一件事是来整合my plus,这个整合my beat plus呢,首先第一步我们当然是导入依赖,这个依赖呢,我们已经将马贝斯plus的所有依赖我们都导进这个古力ma common里边,诶这个common里边呢,有些类还报错,我们一会儿再来解决,主要呢是来导这个依赖。相当于呢,把马贝plus的starter啊,针对于spring boot专门写的这个starter,我们导进来这个场景启动器,接下来呢,第二步,那么依赖导入以后呢,我们接下来就可以配置了,这个配置呢,我们完全可以参照my plus的官方文档,在这快速开始里边。
01:19
快速开始里边,诶有一个配置,那么这个配置呢,其实主要分为这么几部分,第一部分呢,是来配置我们的数据源,配置数据源,那这个配置数据源主要就指联想哪些数据库等等,那第二部分呢,才是配置我们的my be plus相关的信息,那么这个数据源呢,首先要配置第一步,第一步呢,我们当然首先要导入我们这个数据库的驱动,数据库的驱动这个驱动呢,由于后来的所有微服务可能都要操作数据库,我们将驱动直接写到common里边,好在这儿来my circleq驱动,这个驱动呢,我们一定要看我们数据库的版本,来导对应版本的驱动,来看一下我们现在这个数据库呢,我们选中我们的数据库找信息,在信息里边呢,我们是5.7.27这个数据库,当时装的是它,那么我们MYSQL驱动呢,我们当然就要导这个。
02:19
来在问仓库里边搜一下my circle connector。好,来找一下MYSQL的这个驱动,来找5.7。但是呢,我们发现这没有5.7是5.1比,还有MYSQL68等等,也要说呢,这些驱动其实没有真正对应于我们这个my circleql server5.7.27的,其实呢在官方是这么来解释的,那可以来到my circle的官方这一块位置,官方这一块位置呢是这么来说的,其实呢,你选8.0相关的版本,或者呢5.1版本,他们呢都能适配my circleql呃的这些五点六点几,五点七点几,八点零点几都行,其实呢,你选5.1的相关版本,8.0的相关版本都行,而且呢,他们是兼容马S扣5.6~8.0的所有版本,包括呢也支持啊GRE1.8等等等等,特别呢这一块推荐,诶他们呢是全适配的推荐呢,我们使用咱们这个8.0相关的,所以呢,我们就直接在这来选中一个8.0.17,比如我们来选中一个最新的,好,我们把这个驱动呢复制过来,然后我们放。
03:30
到这一块,现在我们把MYSQ的驱动就导进来了。接下来呢,我们来看这个。com里边其他的这个错误,我们来解决一下,这个错误呢,主要集中于,诶这有几个类,这类里边要用一些,诶什么异常包括呢,这要用soate相关的东西,那这个so呢,这其实属于soate API的,那我们直接就导进来就行了,Dependency。好,我们就来写一个API Java X就2.5,而API呢,一般我们tomca里边都会带的,所以呢,我们把这个scope调成provided,目标环境已存在,打包的时候呢,就不用带上这个solid API了,那这样的话呢,先让这些solid select API不报错,来看一下,我们把它重新呢导入进来。
04:19
Alt加英特键,我们呢将这些solid API都一个一个的重新导入进来,那这solid API呢,不报错,包括这一块,而这个整个类呢,其实是web里边来防跨站脚本攻击的相关东西,我们可以把这个先删掉,我们用smart security后来直接能解决掉,好把这个删掉就行了,然后呢,我们来看这个circle filter里边还有这个xss filter,同样把那个删掉了,这个也就删掉。直接删掉,然后呢,在这个SQL filter里边,还现在呢,有一个叫r r exception这个异常,这个异常呢,也是之前人生fast里边都有的,我们直接把它呢复制粘过来即可。
05:02
找一下这个异常rr exception,好,来复制一下吧,把它放到我们这个common里边,我们就放到YouTube里边,然后呢,我们把这个填进来,把这个circle filter里边这个RR异常,我们让它重新导一下,导进来好,我们来看一下哪里还有没有报错,把它原来的这个RR好现在删掉,那我们这个。com里边呢,目前哎这一块呢,就暂时没有任何报错了,把这些都导进来好,现在呢。我们给common里边已经导入了数据库的驱动,以及MY相关的依赖,包括呢,我们将这些异常也都解决掉了,然后接下来我们继续我们的整合流程。我们这个整合流程呢,我们第一步做完,我们也导入了数据库的驱动,接下来我们要配置数据源,配置我们呢,直接来到我们的application properties里边,当然这些配置呢,我们推荐使用页面文件,好,我们直接创建一个叫application第二页面。
06:04
在压面里边呢,我们来配置咱们数据源相关的东西,首先呢,我们来配data source.username password等,那么数据源的账号,诶我们是root,密码呢,我们也是root,包括我们要联想哪个数据库,哎,我们这个URL地址,UR地址呢,我们是j dbc my circle口冒号双斜杠,我们是192.16 8.56.10,我虚拟机的3306端口下,诶我们的。商品服务我们连上商品服务数据库,鼓励mail p Ms好连上它,然后呢,除了URL外,还有咱们的driver class name,诶我们的这个驱动,驱动呢,我们现在引的就是MySQL JD bc driver这个最新的这个驱动,然后呢,这个数据源我们就配置好了,接下来呢,我们再把MY贝plus整合进来,在这个application压面里边配置数据源相关信息。
07:09
好,那接下来呢,我们来配置第二步,My biggest plus my biggest plus要配置什么?首先我们要使用第一个注解叫map sky来告诉map sky,我们这个map的扫描来告诉my British plus,我们的这些map接口都在哪呢?Map接口都在这儿,把它这个reference引用拿来,好,我们这个包下呢,全部是我们马贝蒂斯的member接口,我们让它来扫描,这是第一步。使用咱们这个map sc,然后呢,第二步由于呢,我们每一个map,我们还生成了它的这个映射文件,这个映射文件呢,后来如果有自定义方法,有复杂的circle,我们都可以在这里边写,所以呢,接下来我们还得配置第二个告诉MY菲plus,我们这些映射文件都在哪里。
08:03
我们的circle映射文件位置,那这个如何告诉呢?我们需要来到配置文件中,好,我们全部在雅麦尔中配置文件呢,我们来找一下my plus有一个专门叫map locations,好我们来配置它,那我们在class plus类路径下,类路径下的哪呢?我们来看,原来呢,它这有提示map locations的一些默认值,比如呢,Class pass星map下的任意路径下的所有插门,那其实我们呢,也就是这个位置,我们可以把这个位置呢复制过来,如果不配,那默认就是在这个位置来帮我们来找的啊,那我们在map下呢,其实就是我们的所有的映射文件。而这一块的class pass加了一个芯,指的呢,是不止扫描我自己的类路径,包括呢,我引用的其他依赖的这些炸包里边的类路径我都一起扫,诶这class pass型,那现在呢,如果我们写成class pass,那只扫描自己的,那精确的呢,我们就可以写class pass,我们只扫描我们自己类下的这些map东西,这一块配置完呢,接下来我们还要配置一个主键自增,我们可以来看一下现在生成的所有实体类,诶随便打开一个,那么实体类上呢,在我们这个位置有标注一个注解叫table ID,这个拍table ID呢,标注在主键上,说明这是一个主键,只不过呢,默认现在还不是自增的,诶这是一个now,我们要呢,调整成我们这有一个叫O,这是我们这个自增主键,那这个自增主键呢,如果我们每一次来调整,我们需要在每一个类上都来调整它,这个主件是自增的,所以呢,我们可以在配置文件里边进行统一调整来到这一块。
09:51
哎,我们来调整一个什么呢?我们来调整一个叫ID,哎,DB com ID type,我们就调整这个ID type呢,我们使用这个auto,让它自增主键,当然后来等我们数据量一大以后,我们再来做分库分表的时候们再来说其他的这些主键生成规则,以及自定义的一些主线生成规则,那这配置完了以后呢,我们就可以来做一个测试了。
10:16
好,我们来到我们这个product项目里边,我们直接在这单元测试来看一下行不行。诶,这有个单元测试,我们呢,给它注入一个service,我们来看一下我们的这个service里边呢,我们来看一下我们注入哪个service。比如我们就使用这个brand service品牌的这个service brand service我们来测试一下它里边提供的增删改查方法,我们看这些service呢,它呢提供了一个corre page,这其实是一个分页查询,但是它继承I service I service里边有各种增删改查方法,也就是说逆向生成的东西里边,哎,这都有了I service,这也是马plus提供的,那我们直接呢在这进行测试就行了。brand service,我们这个品牌的service,比如我呢想插入一条数据,我们来看,这里边呢有一个叫sal sal里边呢,我们来传一个实体类,那我们就来拗一个拗一个brand。
11:15
Entity,诶,我们品牌的这个实体类好把它呢要插入进去,由于主键自增,那我们呢就不需要来给它给主键的值了,所以我们只需要复制上其他的东西,比如呢,我们这个描述是什么?我们就来复制两个关键性的数据来测一下,比如咱们这个品牌的名字好,那就来写一个品牌的名字,比如我们华为好。我们把它保存进去,保存成功以后呢,我们来s out来输出一下这个保存成功,好,我们来走一个测试,看我们这个整合行不行。好,我们发现呢,刚才控制台打印了一个保存成功,我们来到数据库的这个brand品牌表里边来看一下表数据,诶我们发现呢,已经进来了这个华为,诶我们这个插入就行了,那我们如果想要测试其他的功能,诶我把这个先来注掉。
12:15
已经有一个插入好了,那我们接下来想要测一个修改,那修改呢,也用它提供的这个方法update,这个update呢,里边传两个东西,他们呢有这几个update方法,按照我们这个ID修改的这UPDATE8ID,这是最简单的,好,我们先来测一个它。那怎么按照ID修改呢?我们在这儿需要传一个这个要修改的这个品牌的扎宾对象,而这一块要按照ID修改,那我们就来set一个它的ID,品牌的idl,由于我们这个ID呢是浪型的,我们写个EL啊,现在呢,相当于我们现在要改一号品牌,我们要改哪个字段,比如我们把这个品牌,我们相当于现在我们假设要改一个它的这个描述,诶,那我们就来再给他给一个描述点set describe,然后呢,不需要修改的字段就不用赋制了,需要修改的呢,复制上描述,诶那么比如呢,还叫华为来测试一下。
13:16
走。诶,我们发现呢,这块运行成功,我们来看数据库刷新,我们发现呢,这块也进来了,OK,那么这个修改一下就行了,其他的删除等等大家都可以来测,那主要呢是我们这个查询,我们来给大家测一下。由于这个查询呢,我们后来要经常做,所以呢,Brand service里边有一个叫corry page,这个corry page呢,这是按照我们的封页进行查询,那我们想要查呢,我们还可以查其他的东西,比如说按照ID get8id,按照ID查,包括呢,我们查出来的结果get map,将它封装成map,还有呢,我们查出一个对象,查出哪个对象呢?我们可以使用传一个corrywaper,相当于我们这个查询条件,比如呢,我们这get one,我们可以来查一个我们自己指定的对象,好我们就来使用get one查出某一个,如果想要查多个,我们还可以用list,这一块呢,传的这些waper都是我们的查询条件,好那我们呢,比如我们要查一个list吧,我们要查多个,那这一块waper要传什么呢?我们要传一个这个叫corry vaper,好,我们的查询条件,查询条件这一块的泛型一定要写成我们的,我们要查什么东西我们就写。
14:34
那是什么类型,那现在呢,要查品牌,我们就要写品牌的这个实体类,那么这个quary rapper里边传什么?这个里边呢,我们主要来传一个我们查询条件,哎,当然在后边啊,这个查询条件呢有很多,比如E口啊,按照哪一个列,哪一列等于哪个值,包括呢,哪一列在哪个集合范围内,或者啊包括呢,这有排序,还有group by等等各种查询,当然还有我们这个GT啊ggt,这就是呢greater than啊,大于哪个啊,这是大于等于,包括呢,我们这个like等等所有条件都在这,我们现在呢,比如我就想按照他的这个ID查询,那么就写一个叫E口,E口什么呢?某一列等于某个值,比如呢,我这一列brand的ID,品牌的ID这一列,那么数据库呢,对应有这一列等于什么呢?我现在想要查询一号的,那我就写一个EL,像这一列呢,等于这个值。
15:34
那我们来查呢,返回一个集合,但实际上呢,品牌ID等于它的只有一条记录,当然我们可以便利这个集合来看一下for each,好,我们来直接进行便利便历的每一项item,那写在这里边,好,我们直接在这一块呢,输出我们这个item,好,我们来测试一下。我们能不能查到我们的这个数据。
16:03
诶,我们发现呢,我们这个控制台有打印,诶品牌一号华为华为这些信息呢,都是从数据库里边查询到的,那就没问题,那后来的更多的一些复杂查询或者什么,我们在写到业务的时候再慢慢给大家分析。
我来说两句