00:00
就是最后写代码把过程实现,那怎么做呢?首先啊,这里边第一部分你需要在我们这个模块中再新建一个模块,这模块我已经提前创建过了,我就叫这个名字啊,直接咱建在鼓励parent下边,就是你点右建,新建一个model,然后model里边选个慰问工程把这创建啊,这不演示的别人都做过了啊,这是我创建的,我的名字就叫做can client edu啊,这是我们需要建一个模块。这个位知道啊,然后我在图上给大家来画一下啊。就是我们做这个代码的编写。代码编写,那他做法就是首先。第一步,咱需要创建一个模块。这个模块我就创建了,鼓励这个current,下面叫can client edu,把这个我们先做创建啊,这是它里边的第一部分,然后这个创建之后,我们下面进入到它的第二部。
01:05
第二步怎么做呢,咱需要在我们这个就是看到。啊,CAL下划线,可兰edu里边引入咱们需要的一些相关的依赖,把依赖给它先引进来,这是它的第二步,然后这个依赖我在课件中都有,咱们把这依赖直接复制到我们那里边就可以了啊,这个我给它复制一下啊。我应该提前复制过,就是你把依赖直接给他。拿过来就可以了啊,这是第二步啊,复制它相关的依赖。然后这个依赖有哪些,咱来看一下依赖分别都是什么,不需要各位记咱邀请你对它有个认识啊,咱们来看啊,首先第一个依赖,因为它是一个web工程嘛啊,这是我们那个的web工程,然后第二个是myle,因为咱要操作myle嘛,然后这里边我还用了一个。
02:01
这个不知道各位是否记得啊,应该是咱们在Java基础后面web中间讲的一个DB那个东西啊,就是做一个数据库的一个操作这么一个工具。然后下面还有一个叫这个start JD bc啊,就跟他一起用的,做数据库操作的,然后最后一个是最核心的叫canel,注意啊是阿里巴巴里边这么一个canle同步工具,主要咱们引用其实是这个东西用它做同步,而这些你在就是引用之后,它肯定默认会联网下载,所以各位多等一会儿,如果下载失败,你从我提供的仓库中把代码把那个仓库依赖直接复制过去啊,主要其实这个依赖就是看到client。Kind的客户端同步工具,这是我们的第二部分引入依赖咱们就做到了啊,然后引入依赖之后呢,咱的第三部分肯定需要创建一个配置文件,因为它需要启动,那我们来做创建啊。咱们就来到这里边的OB里边,在里边我们写一段配置,这配置我就从里边直接我就复制过来了。
03:07
啊,就是这段配置。然后这配置我们看一下啊,第一个端口号,为了区分端口号,我特别改成了一外,为了跟之前都不一样啊,当然你只要不一样就可以,第二个是名字,第三个环境,然后这一部分是你的数据库部分,这是配置文件,就是咱们的第三步。啊给大家啊,写到这个位置啊。第三步,咱创建publication。点这个配置文件。里边啊,就是复制我们相关的这些内容。这个我完成了啊,然后这个完成之后。咱下面做的就是编写它那个客户端那个同步那个类,然后在启用类中让他做个启动就可以了啊,这是我们的最后这步啊,那我们来写一下啊。小D位置第四步。咱们创建一个can的这么一个客户端。
04:05
啊,客户端它这么一个同步一个类,然后在启动类里边去执行这个客户端的这个类就可以做到,这是它里边的第四步,那咱们啊把这个咱们最终来写一下啊,首先第三步呢,我们建一个类,这个类呢,不需要各位去写,我把这个直接复制可以了,各位能看懂能改就可以了,因为这个代码是固定的。那比如这个类,我就叫这个名字啊,Canle,我来到这里边。在这里边启动类,我之前建了一个最基本的球类,然后我在这个位置,比如说现在为了区分,我给它建个包。这个包我就叫。然后在这个client包里边,咱们把那个类给它创建出来,那我点个右键新建一个类,就叫Kindle client,这是咱们建一个类,然后在类里边,我就把这一段代码咱就直接复制过来,然后咱们一会儿详细看一下这代码到底什么意思,我给他啊做个复制。
05:10
各位用的话不需要你写一遍,因为是固定写法,咱直接复制就可以了,就现在啊,这代码我应该都做了复制。主要就是这个can client这个做到了啊,然后这个复制之后,咱下面呢,需要把我们的启动类,咱需要做个修改。为什么要修改,给大家说一下啊,就是因为我们现在啊要跟那个远程库做个同步,也就是说啊,远程库的表中加了数据,我本是不是要加数据,远程库里边它的数据发生了修改,我本地是不是要修改,但这过程怎么做的,咱就要保证我的程序在一直处于一种监控状态,就一直监控远程库中变化,所以这你的这个当前这个项目需要是启用状态,包括这个监控程序要一直在运行,那怎么做呢?咱这里边啊,在咱的看中需要把启用类做一下修改。
06:06
怎么修改,给各位说一下啊,第一个咱需要让这个启动类啊,先给它继承一个类,就是你先做个继承,然后继承之后咱就让这个client中有个方法。啊,大家看里边有这么一个方法。这个方法。叫run,这方法就是做那个远程库监控,包括它的相关操作方法,所以咱需要用那方法一直处于一种运行状态才可以啊。那我来写一下怎么来做啊,第一个咱先改请类,让请类呢,先继承一个类啊,或者说实现啊,就据说是实现一个接口啊,咱来一个employments实现一个接口,然后这接口名字叫comment line render,我写一下应该叫cum。啊,Mon,这个叫赖。还有一个叫。先要实现这么一个接口啊,应该是comm。
07:04
And啊,这么一个写法啊,那我把这依赖我先引入。我复制一下啊,应该是这么写啊,Can,然后叫line这个reno。就这个名字啊,我把它先复制过来啊,省得我敲敲错啊。就是这个啊,就是它啊。然后这个就是实现之后呢,咱需要在启动类里边呢,我们给它写上这么一个结构啊,也就是里边我写的这么一个结构啊,那这个我就直接给它顺过来了啊,就是咱们的。启动类中的这么一个。这个啊,给大家复制过来啊,然后复制之后咱们把它一些相关依赖给它先引进来。啊,就是里边的这些。那我们看一下啊,这个写法跟咱之前写的稍微有点区别,它写法怎么做呢?因为咱们现在在我的行类中,当我一启动它就可以执行,在里边我是不是是现一个接口,在接口中的一个方法啊,就是你需要注入这么一个东西,然后它里边默认有一个叫乱方法,乱方法什么意思呢?只要我的程序在执行状态,这方法就一直在执行,然后执行中呢,咱可以调我们那个看到卡里边,刚才我们写到这个方法,让他就会进行到啊,所以里边加了。
08:26
这么一个处理啊,就是为了让它一直处于一种监控状态,当你这个远程库变化,我这个会一直知道,就一直是一种监听状态。这个啊,我们主要这么一个结构,而这过程不需要各位去敲,别你按照这个笔中这个写法,你把这个代码直接复制能看懂就可以了,主要啊这么一个解法啊,我把这个给大家先。截过来,然后咱们下面具体看一下这个can,可里面的代码什么意思,最终咱来做一个测试。这个啊,我先复制。
09:02
这样的话,完成了这么一个结构啊。这么一构基本结构,然后这个说完之后,咱最后看一下这个client里边什么意思,最终咱来做测试,这个代码也是一个固定代码。咱们一行来看啊。首先大家看啊,在这里边呢,我在上面定义了两个值,第一个值这个东西。不知道各位是否记得啊,这是什么?是不是队列呀,就是咱们这里边用队列镜操作,然后这data source代表我们的数据源,然后往下看啊下面怎么做呢?第一个咱先new这么一个,就是这么一个连接对象在里边,注意啊,你加上你那个就是。Linu中那个can的IP,包括它那个端口号这些信息,因为我这个就是远程库,那里边的地址,就是我虚拟机的地址是这个地址,192.16 8.4.132,各位写的话,你改成你的那个地址,跟我这可能不一样啊,这个写成你的地址,然后第二是端口号,注意啊,这是固定的,咱们can的连接端口号默认就是这个五个一的端口号,不能写别的,默认就是它这里边有个example,就找他那个配置文件,因为咱刚才改配置文件改的就是里面那个example那个路径。
10:23
啊,就是里边的。这个路径啊,所以写它这个是固定的,比如说这里边改的话,这个位置改成各位那个虚拟机的IP,然后改完之后,下面是它的过程啊,这个过程干什么呢?其实就是来监控一下你当前那个远程库中的数据是否发生变化,这里边有个值,这个值如果它这值就是S等于零,那就表示远程库中没有变化,咱就给它sleep,如果它发生变化,我们就继续往下执行,主要就是做这事行。监控你远程库中的数据是否变化,如果size大于零表示变化了,那我们就往下执行,如果没有变化,咱就直接给他做一个sleep啊,主要是做这个事情,然后咱看变化之后调这个方法叫date handle,看这里边我们做了什么事情啊,往下来看啊,这个方法。
11:15
大家看啊,这是固定一个方法,这一方法大家看他干了什么事情的。主要咱看这几个地方。你注意啊,这些地方是不是几个常量,第一个叫比delete。是什么,它就表示啊,如果说你现在做的操作是一个删除操作,那就用这个方法,然后这个update就表示,如果你做的是修改,那只用这个操作,然后下面有一个叫insert表示,如果你做的是这个添加,那只用我们的这个操作,就判断你当前什么操作是添加,是修改还是删除,因为查询不调判断查询表中数据不会变化,只有你做删除、修改、添加会做不同变化,然后下面就做了不同的事情。
12:02
比如说啊,咱就看一下这个添加这几个都一样啊,咱以添加为例,我把这个点开。来看添加做了什么事情啊,各位注意啊。其实这个过程做的很清晰。在这个过程中呢,我这里边写了这么一个S里边做了什么。你看insert into又加个value,加上很多内容,它主要做了什么呢?就是啊,把你远程库,你是改了哪个表,包括改了哪个字段,或者说像里边加了什么值,把这些字段包括这些值给我们拼接上一个circle口语句,最终语句就是insert into,加上表名称,加上里边的字段,再加上它的值,就是把你改的那部分拼接上一个circle语句,主要做这个事情,包括修改删除,做的跟他一样,都是拼SQL语句。然后偏语之后看这一行,就是把你篇的语句放到咱的队列中,就放到你最终的队列里边去,然后放到队列中最终这位置再做执行,也就到了这行。
13:07
大家看啊,当我队列中放了语句,队列值是不是大于一啊,大于一之后把语句做执行,如果你不大于一就不执行,那我们看它执行代码。就这位置啊,就是从这队列中把值取到,然后调这方法,方法中就是用咱刚才说那个DB data source,把语句最终做个执行。主要啊就是做了这个事情,所以这个啊是咱们这个客户端工具的一个基本过程啊,我再说一遍啊,不需要各位写,但要能看懂它的过程怎么样,第一个咱们开启这个can的远程监听,就监听远程库的变化,当你变化size值会大于一,如果它等于零,就是没有变化,如果大于一的话,那咱怎么做呢?下面就来看一下我当前做的什么操作,你是添加,是修改还是删除,如果说你添加,那怎么做,就拼接你添加的错语句拼接出来,你是加哪个字段,包括里边加什么值,把语句拼接上,拼接之后把这值就是语句放到咱队列中,在队列中做个判断执行,如果队列大于一,就表示里边有所语句,那我们来执行,在执行中从队列中取出你的语句啊,就这个方法从里边取语句,然后取语之后用我们这个。
14:27
就是DBU这个过程,把这个语句最终做个执行。如果你是添加,那就做添加操作,你是修改。那就执行修改语句,最终在咱们的本地库中有咱们那个最终同步过来的数据,所以它就是这么一个流程啊,就是在这个客户端中,通过监听远程库的变化,然后变化之后把语句拼接,最终在本地执行,然后在我本地库的表里边就会有同步变化,当你远程里面添加,我本地也会跟着添加。
15:00
这个啊是关于咱们对它做一个分析,所以现在啊,到这里咱就把这个看到,这个过程最终就做到了啊,主要这么一些准备工作就都完成了啊,最后咱就缺少这个测试了。然后这过程啊,希望各位知道啊,我最后再重复一遍啊,然后下一个咱再具体演示它的过程,就是第一部分你肯定需要安装,就是在本地和你的lino中都需要装这个买搜数据库,然后建相同名称的库和表,然后记完之后在你的lino中的买搜库中,因为这作为我们的远程库,你需要修改这个blog,然后修改之后安装can,就是咱们这个过程解压,然后改配置文件,最终启动,这些都做到之后,咱最后在我们的本地,我们就建这个就是。项目这个工程包括里边写启用类,还有写客户端代码,这过程你按照我课件中的流程把这复制直接改就可以了,因为这是一个固定过程,然后都选之后,咱最后把这个看到这个启动就能做一个监控,当你远程库中变化,本地会跟着变化啊,这咱们一会儿来演示这节课,主要把这个流程咱给他都代码这些东西都写完了。
我来说两句