00:00
大家好,我们继续上课啊,上节课呢,我们介绍了筛顶JDBC,它的一个基本的就是它主要是能做什么事情,咱说的它是一个轻量级的账号框架,它主要的目的是什么呢?简化对分库分表之后数据的操作,那咱们下面呢,就开始用这个筛定GBC,通过代码方式来实现一下相关这个内容,那我们下面再来看一下。首先我们先做的第一个事情,咱先把这个代码的环境先搭建出来,然后咱们用筛定JBC来实一个最基本的水平分表操作,那咱们来实现一下,我在里边写一下。筛定JDBC来实现我们的操作,咱们首先先做第一个就是水平分表。然后一会儿咱再实现其他的这个操作。
01:01
这个啊是我们做的第一个也是写一个筛顶GBC一个基本的入门,那首先呢,咱们把这个环境先做一个搭建,然后搭建之后再实现里边的具体内容,那我们来看一下第一个。搭建这个环境。然后环境怎么搭建呢?给大家说一下,咱们现在肯定是基于我们的idea工具,然后在里边呢,第一部分我们用到我们一个最基础的框架,就是木头。包括咱用这个my be,当然为了操作方便,咱们用这么一个东西,叫做my be plus。用它来实现对于数据库操作,然后第三部分咱就整合这个筛顶GDBC。用这些实现我们操作,然后在过程中呢,咱要用到这个德鲁伊的这么一个连接池,我写一下就是DRID德鲁一的这个连接池。
02:05
所以这是我们在我们这个案例中所想的技术点,第一个咱搭建一个用这么一个工程,用my plus,通过它整合she定GBC,最后用到这个丢一的编接池,这个啊是一个基本环境,那这个写完之后,下面我们在里边来做这个具体操作,咱们先把这个代码环境先给它搭建出来,然后咱第二部分再来创建我们的数据库。创建数据库里边的表,最终通过这个计量级的S定GPC框架,选这个操作,咱们啊把项目先创建出来,那我在里边写一下。首先第一部分咱们点这个新建,先创建一个boot这么一个工程,我们就选这个,然后用它来创建。在里边我给它起个名字,比如我们叫这个com点。
03:01
At。硅谷,然后起个名字,这个名字我就叫she顶JDBC。DEMO这个啊,我们就创建出来了,这是第一部分,我把这个给各位截个图,咱们建一个工程。我想这个位置就是创建一个spring。BOO的这么一个工程,然后工程名字我们叫这个she定JDBCDEMO,这个是一个创建,那咱给他点下一步把这工程先串出来,而这里边我们用的损boot,咱就用我们项目中的版本,就是2.2.1的版本,我们先随便选择一个,然后给它改成这个2.2.1的版本。这个啊,我先创建出来,然后在里边写一下,我们用这个2.2.1的版本。这个啊,我就在当前窗口中把这个创建,咱们等它加载完成。
04:05
我们等一会儿啊。然后现在这个应该已经创建出来了,创建之后呢,咱们先把这个book的版本改成这个2.2.1。因为我们现在用这个版本。所以这样的话,咱们把这个基本的工程我们就创建出来了,我把这个给各位截个图。然后截到我们的课件中来,啊,写到这个位置,首先第二部分就是创建一个死人部工程。然后创建之后里边的第三部分。我们要做的事情就是。修改工程的这个RI boot的版本是2.2.1的这个版本,也就咱们刚才改的这个版本,这样的话把这工程我们就快速创建出来了啊,这时候我们用的这个相关的技术。
05:01
然后创建之后咱往下来做,因为咱们现在呢,肯定要用到里边的这些相关的这些技术,包括m two plus j d bc,还有多力间接池,而这些用的话,咱肯定要引入相关依赖,这里边的第四部分就是引咱们需要的一些相关的依赖,把依赖我们都引入进去,包括S的SC等等等,那这依赖不需要各位记,我在资料里边给各位提供了一个碰文件,在里边有我们新闻依赖,那我们到这个资料里边,把这个新闻依赖咱就直接复制到我们项目中就可以了,那我现在把这部分我们就直接复制一下,复制之后给大家会解释一下这些依赖分别都是什么。那我们来做一下啊,咱们来到里边把这个依赖这地方给它替换掉,换成我们刚才里边的这个依赖,这样的话,这一步就完成了。
06:01
是我们里边的这个第四步,引入新闻依赖,然后把依赖复制到我的课件中,啊,把这格式快速调整一下。这步完成了啊,然后复制之后,咱们到我这里边看一下这依赖分别都是什么,咱一个来看啊,首先第一部分就是boot的,包括它最基本的依赖,包括这个测试的T依赖,就是boot依赖,咱用的是2.2.1的版本。然后第二部分大家看这个依赖,我们看到啊,这依赖咱应该认识啊,是不是德鲁伊连接池依赖,因为里边我们要用到德鲁伊的连接池,然后除了这个之外,还有一个是my circleq的依赖啊,这咱们也引入了,因为咱们要操作买sol数据库,做到分库分表数去操作,然后主要大家看这依赖。这是什么?就是sheding j bc依赖,咱用的是4.0.0这个版本啊,这是she定JBC跟S整合这依赖,然后除了它之外还有这个依赖,这依赖就是咱们一会儿操作数据库用到这个my be plus依赖,还有最后一赖叫logb,它是简化咱们SHE1类开发就用这个之后不需要我们写get赛的方法,用里边注解可以把这个快速生成,为了咱们开发更加方便。
07:19
所以现在把依赖我们都引入进来了,然后里边主要依赖应该就是这个she定JDBC的这个依赖,这些啊,我们都引进来了,所以各位按照步骤把这个快速给他直接复制就可以了,这是我们的第四部分引入相关的依赖。然后引入依赖之后,咱下面做的就是在里边就可以开始编写咱们相关的代码,然后通过代码把这个功能就做实现,啊,那这代码咱一会儿来编写,现在咱先快速把这个环境做创建,一会在里边我们写的是以内包括操作数据库的,包括这个配置文件等等一些内容啊,这咱们马上编写。
08:01
所以现在是一个环境搭建,然后环境搭建之后,咱下面来做第二部分,因为我们要做到这个水平分表这么一个操作包,一会儿会做到相关的分库等等一些操作,所以咱们可能要有数据库,要有表,所以第二部分呢,我们就按照水平分表的方式,把这数据库和表咱们创建出来。然后写一下啊。按照。水平分表的这个方式。咱就来创建数据库和这个数据库表,那怎么创建给各位我们先做一个基本的一个规划,然后咱们给它快速创建出来。那这里边我写一下啊,因为咱们在前面课中学到水平分表什么意思呢?说的简单点,就是把表中的数据的一部分存到一张表中,另一份数据从另一个表中,而这多张表的结构是一样的,就是每张表中存一部分数据,比如现在我有10万条数据,我两张表,每张表中存它其中的5万条数据,这个叫水平分表,那在下面咱就按照这种结构创建一下。
09:14
比如说一会儿我这么创建啊,我首先呢,先创建一个数据库,假如说我数据库名字我就叫这个啊,咱就叫。这个e Du cos,这个DB就是我们的课程这个数据库,我就叫cos DB这数据库,然后创建之后,咱们就是在这数据库中,我们创建两张表。两张表,而两张表咱们因为咱们做到是水平分表,所以两张表我起个名字,比如第一个表我就叫cos下线一。这个啊,我先回来啊。第一个表我就叫cos_一,然后第二个表叫S_二,咱们建两个表,做到咱们的水平分表特点,这是我们一种规划,然后创建之后,咱们一会儿我们要做一种规则,我们在之前课中也提到了,比如咱一会儿约定,当我这课程ID是偶数的话,那我们就向COS1里面加数据,当你程ID是奇数的话,咱们向COS2里面加数据,这是我们一种规则,不在里边写下啊,咱就约定一种。
10:32
规则。什么规则呢?如果说你添加的课程ID是一个偶数啊,注意是偶数,那我们就把这个数据添加到这个COS1的这个。表里面去。然后如果说你是奇数。那怎么样就给它添加到这个COS2的这个表里边去,这是我们目前要做的这么一种需求,各位把这知道我再重复一遍啊,做法并不复杂,这些咱都讲过,就是第一部分咱们先搭建一个环境,我们刚才搭建出来了,里边用到我们最基本这些技术。第二部分咱们建个数据库,数据库中因为做到是水平分表,所以咱们建两个表,一个COS1,一个COS2,两个表的结构肯定都一样,然后创建之后咱们约定有规则,当你QID是偶数的话,那我们向COS1里边加这个数据,当你ID是奇数的话,那我们向COS2里面加数据,这个就是我们一种相关的约定。
11:38
然后这个说完之后,下面再按照这种过程,先把这个数据库表创建,最后再写代码把这完成,那我来写一下啊。首先第一部分咱们打开我们这个工具啊,当然这工具有很多,我这边用的是circle young,你可以用navigate,或者说其他工具都可以,那我首先第一部分在里边呢,我先建个数据库,数据库名字我就叫cos DB。
12:05
把这个在线创建啊,就是里边这个数据库,然后创建之后呢,在里边我来创建两张表,那这个表我在里边,咱就用命令创建一下,我写一下啊,就是第一个create table,我叫这个cos。下划线一。然后在里边呢,写上我们相关的字段,比如说里边的第一个字段,我们叫cid啊,CAD呢,咱们给他来一个类型,比如类型呢,我就写一个浪类型,或者说其他类型,但类型有多种写法,比如说啊,咱看一下我之前表中。里边写的这种类型,咱用它直接复制一下啊,比如你看里边有一个类型叫这个。Big int是不是一个成整型,或者你写个what,我现在就写一个big int这么一个类型,把这个咱给它直接。
13:00
拿过来啊。我写这个叫big in,然后它里边肯定是一个。飞空,并且它是一个主界,那我们来一个prime key。它是一个主见,这是我们的第一个字段,然后第二个我们是这个课程名称,比如我叫c name。啊,Name,然后咱们来一个what来一个。50这里边也来一个not呢,这是第二个字段,比如说咱可以再来第三个字段,假如说我现在课程呢,要属于某个用户,那第三个字段我就叫这个user ID啊,这是DN字段,然后UCID也写这么一个。Big int这么一个类型。你写它,然后在里边啊,咱们也是来一个闹闹,包括我再加最后一个字段,再来一个叫。Thes就是它的状态。
14:01
Theats,比如叫这个咱为了区分啊,我叫这个c theats也是来一个what char类型,比如来一个十,比如它的状态是一个已发布或者说未发布,这样的话,咱把这个电表语句快速写出来了,写完之后把它执行。然后执行之后大家看,现在在我这个里边多了一个数据库,它就叫COS1,里边有这么几个字段,包括CDC name u CI ID,这个CS。这个啊,做到了。然后做到之后呢,下面我们再建第二个表,第二表结构跟它一样,是名字叫COS2,咱把它快速创建出来。所以这样的话,咱们把这个准备工作就做到了啊,这个是我们做到的第二部分,我把这个给各位截个图放到笔中来,就是现在咱们把代码环境搭建出来了,包括数据库和数据库表也都做到了,然后都做到之后,下面咱就开始写代码来实现对这个分库分表之后这个数据操作,包括咱们之前也提到了,用这个she定GDBC,它并不是做分库分表的,而是把你分库分表之后数据进行操作,比如现在我们加数据,那它里边根据我们的规则,你可以向COS1里边或者COS2里面加数据,咱现在演示叫水平分表一演示垂直这些方式,包括分库的方式。
15:33
这个啊,是我们环境搭建。然后搭建之后呢,咱下面就开始编写代码,就是咱的第三步。我们开始编写代码来实现对分库分表之后数据的。这么一个操作。那咱们看怎么做啊,首先还是把这个结构写出来,因为现在呢,我们操作中呢,肯定要去操作数据库,按照咱的特点,首先第一部分,因为这是一个笋部的工程,大家看里边是一个行类啊,然后咱们在这包里边,现在我再来建个包,咱就先建个实体内,为了操作到我们那个相关的表。
16:18
那实体类我起个包,就这个叫anti体,实体,在实体中咱给这个实体类起个名字,比如名字我就叫。Cos。这个创建,然后写完之后在里边写上它对应的属性,咱们快速写一下,因为它的使用中有四个,第一个叫CD。咱就来一个浪类型ID,然后里边第二个是我们那个c name课程名称,包括第三个是这个叫user ID,注意它的驼峰式,包括还有最后一个。SP我们调这个c thes,把这个我直接复制,然后起完之后生成他们的get set的方法,但是现在因果你用那个loan book这个相关的依赖咱不需要写,直接在上面加个注解可以了,这注解就叫做。
17:15
Date。大家看,当你这么写之后,它就会生成这些属性对应的get和set方法,这样的话咱把C类就快速创建了,然后创建之后,因为现在我们要操作数据库,所以在里边呢,我再建个包,这个包我就叫。Map按照咱们买be体的特点,各位应该都记得啊,买中的有一个interfe接口,然后对应一个叉L配置文件,但是因为咱们现在我为了方便用的是买be plus,他把里边很多过程给咱做了封装,所以这个过程会特别方便,那我就直接写一下,在map中呢,我就创建一个。Interface,比如这个我起名就叫。
18:05
Map,然后咱们让Co map呢,继承一个接口叫做face。Map在里边加上你的实体类,这样的话咱就可以直接调用MP中给咱们封装的方法,把这做到啊,包括在interfe中咱也加个注解,也来一个这个pan交给词数去管理,这样的话把这结构就做到了,这是LP的用法,对于LP的用法详细讲解,各位可以看我们上回谷的鼓励学院里边的相关的这个买的内容啊,咱现在把它直接做个使用,所以这是一个基本环境,包括这个启完之后,因为咱在启动中这map需要给它扫描到,所以我们在启用类上边需要加上一个注解,就这个。Map看找到你map这个。包类路径啊,就是它路径,如果你不写它,那它一启动找不到会报错,说你这个没有。
19:05
这是一个低温的环境啊,现在我们就做到了,然后做到之后呢,因为咱们现在啊,最终我们要通过she定JDBC去操作分户分表之后的数据,当然在过程中呢,你可以写那个controller service和map,我这里边为了咱们测试方便,我一会就直接在test中写它的定用代码啊,当然你可以写control map service,过程就是现在咱测试没有必要,那我现在在这个。过程中的test中,咱就要来做这操作,那怎么做呢?因为它要调map中的方法做操作,那咱在里边首先我就注这个。先住进来。咱们用这个注解叫这个。然后加个private,它叫Co。然后这个叫cos map,最后咱在方法中,我们就调这个cos map中的对应方法,就能实现它的对应操作啊,这咱们一会完成,所以现在咱们就把这个项目的结构搭建出来了啊,就这一过程。
20:17
这个各位给头知道啊。然后这过程我给各位。结构图。拿到我们的课件中来啊,给大家写一下。就是现在做法就是呢,在里边我们创建了这么一个东西,然后这几个内容中,首先里边的第一部分这个cos是咱创建的这么一个。实体类这是第一个,然后第二部分有一个map,咱们是使用这个MP啊,就是my basic plus进行操作。包括最后有一个启动类,就这个。行类里边咱加那个map sc啊,包括最终实现我们的最终内容,所以这个是我们目前写的这么一个基本结构,我写到这个笔中,咱就创建实体类。
21:08
包括创建你的map。把这个我们就做到了啊,所以这些呢,应该都是我们对应的准备工作,各位把这些能快速完成,然后这些都完成之后呢,咱们下面要做的是什么呢?就开始用的筛顶GDC了,也就是说一会儿咱要做的话,在这个boot的配置文件中来配置你的筛定GBC的操作,比如说你要操作哪个数据库,操作哪个表,然后你添加数据的规则怎么样,比如咱刚才预定规则,偶数基数该怎么操作,而这些咱都是在配置文件中最终做到这个咱一会儿完成,所以现在咱们就先把这个环境搭建出来了,包这个表也都创建了,以及做到了水平分表,另外就是里边这个。实体类包括麦克部分,咱们一会儿把我们后面部分完成。
22:02
这各位啊,先能把这环境快速搭建出来。
我来说两句