00:01
各位同学大家好,欢迎继续收看上硅谷视频课程。刚才内容中呢,我们给大家演示了用MP实验一个查询表中所有记录,大家也感受到了,用MP实验堆数据库操作是不是会特别方便呀,你发现我们刚才代码中,咱们好像第一个没有写测后语句吧,第二个没有写插M配置文件嘛,咱们只是让咱们的接口继成倍的map,然后直接调离的方法,结果是不是得到了,所以用它肯定会特别方便,那我下面给各位一个演示。那下面咱们演示什么呢?大家看我们的课件中啊,这个大家注意,刚才呢,虽然说我们没有写语句,但是它的底层肯定会有语句的生成,所以我现在比如说我想看一下MT的底层语句是怎么样的,然后它的底层过程是怎么执行的,所以在这里边给我们提供功能,就可以查看一下circle的突出日志,那我下面给大家就来配置一下,咱们把下面这内容就配置到我们项目的配置文件中,就能看到MP底层的语句,包括它的执行过程是怎么样的,那咱来配置一下。
01:16
首先我来到配置文件的地方,然后在里边呢,加上这段配置,这段配置就能看到日志,然后配置之后,我把刚才的这个代码再来执行一下,咱们看一下。最终的效果是什么样的?我们来查看一下。咱们等它执行。然后各位看啊,咱们往下看,首先你看到啊,这里边啊多出来这么七行内容,然后这行内容中都是什么?咱看首先第一行它叫creating new circle session,告诉我们正在创建一个新的circle session对象,这circle session应该就是买悲的这么一个核心对象,然后创建之后里边进行连接,连接之后你看啊,这里边是不是有一条思语句哦,就是它底层生成的语句,还一个叫preters,这里边可以看参数,咱目前没有,它会空,然后最终这部分是咱们最终结果不好,你看通过这个配置在能看到它底层的过程,包括它底层的语句,以及它的参数,还有最终结果,所以这个与我们后面排查问题中会使用到,各位现在知道就关于怎么查看circle的数字制。
02:34
然后这个说完之后,咱们继续往下看,刚才呢,给大家演示的只是一个简单的一个操作,那下面呢,咱们进一步演示,咱们用MP,我们可以做一个添加操作,包括修改,包括删除,包括查询,那我下面给大家演示用MP实现一个添加操作。咱们看这个该怎么做,那现在呢,我就在我这个测试这个类里边,我们再来创建一个方法,就做一个添加操作,那这方法我也写一个。
03:11
单元测试。来一个艾特。的,然后public we,比如我叫这个test的A,就是测试添加,然后添加怎么做的,刚才我们说的它的操作都是调userer measure中的方法,那我们找一个添加方法,添加方法在里边应该是这个insert,然后在insert中传的就是一个对象,那这对象呢,我在里边我就手动new一个对象,那就new一个userer。然后用完右侧之后,我向右侧中手动来塞的它的值,这是第一个名称啊,这个名称为了跟它不重复,比如叫这个。这是名称,然后第二个set age,年龄,比如说20,第三个这个email email我随便来一个值,比如说123,这个qq.com,所以现在我们向user中设置值,设置值之后咱们把user对象传到in色的方法中去,最终它有一个返回结果。
04:22
各位同学可以猜一下,你说这个返回结果是什么?它代表什么?或者各位是否知道,在我们学买so的时候呢,肯能提出一个词叫做影响函数,而它的反应值就是我们的影响函数,就是你现在项表里面成功加了几条记录,所以这是关于一个添加操作,我们就这么实现谬一个对象向里面设置你要加的值,最终调user麦克中的因侧L方法把对象传进去,最终返回的是你的影响行数,这样的话就能完成一个添加操作。那我现在把这方法咱们来执行一下,看一下它最终的结果怎么样,就看这个值能不能最终加到咱们的数据库中。
05:07
那我们来试一下啊,看一下结果。然后各位看,首先在它里边是不是有一个四个语句,在语中你发现是不是有四个问号,就是咱要加的四个值,然后下面在T里边有咱们加的几个值,最终反应结果是比这是你成功加了一条记录,所以这样的话咱们就完成了一个添加操作,我把这个给各位截到我图上来MP做添加,添加之后咱到表里面刷新看一下,大家看LUCY20包括邮箱地址。是不是就加进来了,这样的话,咱们就完成了一个添加操作,就是MP的一个最基本操作,所以各位把这方法记住,音色的方法能做到一个添加。我们就也是完成了,然后添加之后呢,各位仔细看里边有一个特点,或者各位是否发现啊,咱先看代码中,你发现我刚开代码中啊,我并没有设置那个ID值吧。
06:13
是没有设置,而ID值咱在表里边创建的时候,我的ID值并不是自动增长吧,就不是这个auto to inrement吧,但是现在你发现,当你添加ID中是不是有一个值,这值不是我加的吧,也不是数据库生成的。那大家说它是谁生成的?是谁做到的,是不是由MP帮咱们生成一个ID值,所以下面给各位来说这个东西,就是MP中这个东西叫什么?它叫做主见策略,这个东西是由MT帮我们生成的,然后大家看啊,关于它的策略,这个我特别说明,这个策略呢,如果说你默认不写,它就是这个值,你发现我刚才就没有写,比如现在再给他写出来,我来到世界类的ID上加上一个策略,我把这个复制,直接引入它的依赖。
07:05
然后大家看这一段话,就是它的策略的配置,这策略是什么?刚才咱生成的这个值就是由LP帮我们生成的,就是你现在不写它就是这个值,当然你也可以写出来,当这值是什么意思,大家看啊,首先我们这么来看,咱们把这个给大家就是。点出来,然后在里边呢,有这么多个值,我把多个值给大家都截过来,咱看一下这几个值分别都是什么意思,就是关于MP这个主线策略。它的特点就是在里边咱们可以做这个。相应的配置用注解可以实现,然后在ID type里边有多个策略值,这多个策略值给各位我都列出来,但是我强调咱们实际中用的比较多的大部分都是第一个或者第三个,那几个值是什么,给这位都做个解释,第一个值叫ASID,这值是什么呢?
08:11
我强调啊,就是它会生成一个就是19位的一个随机的,或者说唯一的一个值是一个19位值,包括咱们刚才生成的值,其实就是一个19位的值,比如说这个值大家看是不是一个19位的,这是第一个值,然后第二个叫A3的UID,可以生一个UID的值,也是一个随的值,第三个叫凹凸,这好理解,是不是动增长。然后第四个叫input。Input什么意思,是不是有数意思,它就表示当你就是把这个值你写成input的时候,就表示这个值呢,需要咱们自己给它塞,就是你自己向里边塞这个ID值。或者各位是否能理解,就是我手动set这值是什么,你需要这么来做,这是一个特点,这叫input,然后除了input之外还有一个值叫no,这是一个就是没有策略,也需要你手动设置,然后最后有这三个值是过时的方法,如果说你用的是P之前的版本,这三个可以用,但是目前过时了,所以咱现在一般用的是第一个叫A3ID,它会生成一个19位一个值,然后这个凹凸就是做一个自动增长,这是关于LP这个组件策略。
09:30
然后这个策略咱们进一步看一下,这个3ID呢,它的底层用到一个算法叫雪花算法,就是按照不同的这种思路生成一个唯一的一个值,那咱们做个了解,大家看啊。这19位呢,一共有64比特,然后他首先第一个比特是一个符号位,然后41比特是一个时间戳,用十比特作为机械ID,然后再用12比特作为那个流水号,通过这些共同组成我们这个19位这个值,而这个值它就是第一个,肯定不会重复,另外它效率很高,所以咱们目前MT中用的比较多的都是第一个策略,就是生成一个19位的这么一个值,所以这是关于LP的一个策略。
10:18
在策略中的,如果你默认不写,那就是我们刚才说的这个策略,就是我们的第一个策略,咱来说一下,这个叫SID,但是这个也可以写出来。另外咱能配一些全局的,就是在配置文件中加这的话,那它表示全局用的都是凹凸,但是你不配置默认都会用的,生成19维的值啊,咱们一般也很少做配置,一般都是用默认的这个值就足够了。所以这是关于MP如何实现添加,包括LP这个组件的策略,到底该怎么进行配置,这给各位就做了一个演示。
我来说两句