00:01
来咱们下边咱们看看啊,这个要是按这个流程,我们要去实现的话呢,需要做哪些个准备。嗯,远程的远程的第三方的接口吧,不是这个远程接口哈,Red这边是现成的,这边不用直接调就完了,下边就是MYSQL这边呢,给我们去写一下,哎,得先把这个先先搞定哈。哎,这个。代。说这个。嗯,咱们还是目标思路代码这个套路来哈。这个代码呢,先是去。在my circle。Provider中。这个叫干嘛呢,去创建一个远程的接口。啊,首先呢,是。找到买的provider在这儿呢,咱们去看一下啊。
01:02
呃,这是这是根据账号去加载这个number po啊,咱们咱们得另外写一个。咱们先写这个也行,是先写那个接口也行,只要两边我说你都一致啊就行,注解该加的都加上。然后呢,这边是。我先把这些我先停一下吧。哎,这边来一个request。这个叫啥呢?S。Ma。Remote。嗯。啊,这个返回的话呢,返回的是一个结果哈,就C5。Number。那么我们这儿这个地方,我们是接收po还是接收VO?
02:06
呃,各有各的道理。都有道理啊,就是说如果我们这,如果我们这儿接收VO的话,就是说前面调用的方便,它就直接把VO传过来,我们在这儿去把VO转成po。啊,如果说我们是,如果我们这边他这接收的是po,那么就得在前边先把先把这个VO先转成这个po。哎,然后再传过来。就是这个转换呢,就是总得转换一下,你是在consumer那边转还是来这边转。啊,在consumer那边转的话,我们这边呢,就比较和谐,就是都是跟数据库有关的啊,没有这些跟数据库没有关系的东西啊,这边这个VO的话呢,如果传VO的话呢,这边就是说诶,它会有一个数据库,这边会有一个跟跟视图有关的一个东西。如果非要说这个地方要纠结,要较真,要整的比较完美一点的话。
03:00
先把VO先转成d to d to这边呢,我们按d to接收,再转成这个po。就这个时候呢,它就非常的和谐啊,这个VIVO是跟浏览器打交道的。没关系,没问题,这是传输数据用的,这个是我们说跟数据库打交道用的。啊,但是这个就是说中间做这么两次转换。就是有点我们现在看有点麻烦。但如果说这个将来我们做真的是特别庞大的项目哈,如果这个数据很复杂的话,这个就有必要了啊,就是有可能你是VO呢,再结合几个do。就是说VO有可能是结合几个do啊,好几个do它们合起来转成一个d to,这个d to呢,你还得经过一系列的运算解析啊,重重组,再跟别的组装,然后呢,再生成po,有可能是好几个po再去保存。这就是说这个功能业务功能这就是很复杂啊。呃,我们这儿的话,咱们就。
04:03
都行吧,咱们先写个po哈,咱们回头再去见那个VO。哎,如果我们这儿能够拿到po的话。呃。Try cash finally。呃,把这个操作呢,我们去放到这里边。少写个O。Save。呃。Save。嗯,把member po传进来。哎,然后呢,去见一下这个方法。Po这个insert。
05:05
我们估计是没办法保证所有的数据都能存进去。看看我们能提供啥哈。账号是有的,密码也是有的。昵称,哎,看一下这个,看一下这个,这个我们。这个页面哈。账号密码、邮箱地址。用户的昵称就没有啊,一会儿这个得调整一下,这个表单用户的昵称还是要有的。呃,就这些就。就真实性这些就没有了。这就不管了,这些就提供不了,提供不了呢就设置为now,所以说用这个selective啊,就是有值的保存,没有值的就算了。哎。然后我们看一下啊,当时咱们建表的时候呢。
06:00
这也没给他设置唯一约束是吧?啊,那咱们去给他设置个唯一约束。唯约束在这个哈,改变表,我先打开一个我的。历史记录。排编表。这个他。这个叫做。蓝卫slogan account。然后索引的类型。哎,就给他加了一个违约数alter这个,哎,改变表这个库里边的这个表添加一个违约数。CTRLC啊,我们。来这儿呢先。呃,在这个前面吧说。呃,代码这啊是给我们的。
07:02
Member表。增加唯一约束。诶,这边就拿这个去执行保存啊service。行,然后对。这个加密的事儿呢,加密的事儿我们刚才说了哈,加密的事儿是在前面做的,是先加密。啊,然后再去保存,所以说这加密的事儿呢,就provider买搜狗provider就不管了啊,他就不管这个加密的事儿了。好嘞,然后呢,呃。然后这边呢,看一下啊,他如果抛异常的话。咱们看有个异常叫做当时咱们叫做什么来着。Duplicate key。
08:02
I w key。看我们。4.3.25.1.8。来看一下这个在我们它属于spring TX这个包哈。那应该我们这个环境下边是有他的。应该就没问题啊,所以说这判断一下啊。一看它是不是这个plic。哎呀,这个叫啥来着,我也忘了。这个记性呀,哎呀,真的是。啊,就叫这个哈。就叫这个名。我老记得前面有个。WK的啊,如果是这个类型的话呢。
09:01
啊,那咱们就这个。我想想啊。对,这个返回的result in点。就可以告诉他是我们账号被占用了。Constant点儿。哈。Log account already in your就可以给他一个这个提示。然后呢,如果不然的话呢。呃,那么还是得return一个失败。但这个消息呢,就是说实际是啥消息就啥消息了。然后这边如果成功的话,咱们就这个return一个result success。哎,没数据,哎这边把这个去掉啊。呃,这是我们provider里边呢,做这个事儿。对,这个就等于说我们把。等于说把账号是我唯一的检查的这个操作呢,放到数据库表里边,由数据库表负责去做这个检查啊。
10:05
哎,然后这边让看他抛这个异常,然后我们去,呃,给给前面的调用者呢,返回这样一个重复的一个消息,这边是防止它会有抛别的异常。呃。行,我们把把这部分啊,拿到这个笔记里边啊。创建这个远程的接口。这个。对这个还还没完哈,就是这个是我们在handle的方法里边写了它对应的那个接口啊,在我们API这里面。啊,得把这一套呢给它粘过去啊。对了,还有个事儿哈,这是一个实体类哈,注意实体类这个地方呢。如果我们把my SQL provider呢,单独的跑起来,你在浏览器上面单独的去测试这个一个一个去传这些个参数哈,比如说呢,你在前面有个地址哈,问号login count等于什么什么。
11:02
与与一个。雨雨打不出来哈,User PS WD等于什么什么啊,你这个这么样传过来,这些参数在这是能够接收到的。你单独能单独测这个他是能收到的,但是这个非常具有欺骗性。这儿能收到,你以为这就对了,但其实呢,你通过consumer过来调的时候就不行了。Consumer调的时候呢,这是必须得写request body的。啊,这不写水快速包底这个东西就传不过来。这个我觉得是不是咱们应该试一下啊。我先我先按正确的写啊,这边request body。哎,然后呢,整个把这一套呢,复制过来哈,CTRLC。哎,这是接口里边也需要去写写写它。呃,然后呢,我看啊。
12:00
这个把这几个先拿到笔记里边啊。这个是。呃,声明新的。嗯。Client。接口中的方法。应该这么说啊。呃,在这个F接口中生明新的方法。就是他。诶,然后呢,下一个呢,是是在我们的买。Provider中。哎,这个创建handler方法。哎,这个时候它属于我们MYSQL这个里边的属于它。
13:03
我们索性吧,咱们就连那个。呃,Service也一起都标记一下啊,这几个都是我们要新写的。Handler。Service。Handle方法。然后是。啊,这些都有了以后,剩下的话就是说把。这个从前到后的测试,得把这边也写完了才行啊。
我来说两句