00:01
各位同学大家好,欢迎继续收看上硅谷视频课程,我们继续来学习上一通项目,刚才呢,我从几个方面把上一通项目给各位做了一个总体介绍,那咱们下面就来开始详细学习我们的项目。因为今天呢,是我们项目的第一天内容,在第一天内容中呢,咱们来主要学习一个技术,咱们学什么技术呢?我们来看一下,刚才我们提到咱们在持有层框架用的叫买杯plus,所以咱们今天重点就来讲这个买杯的plus使用,主要来学习通过m plus如何实现对数据库的cardd操作,或者说对于数据库的增删杆操作,因为咱们项目中要实际用这个买贝plus这框架,这个框架我后面就简称叫MP了。那这框架中我们主要要讲什么呢?给各位来说一下,首先第一部分给未来讲一下MP它到底是什么,包括它有什么特点,然后讲完之后咱们使用MP来实现我们最基本的添加。
01:12
修改删除,包括查询操作,以及在这过程中我们会讲到MP中几个相关的特性,包括MP怎么实现一个叫自动填充,包括它怎么实现一个叫乐观锁,以及咱们在删除的时候,咱们除了演示普通删除之外,还会演一个删除叫做。逻辑删除以及MP它怎么做这个分页查询。等等内容,所以咱们MP中主要就来完成正经个内容,就包含它最基本的一个介绍,比如说MP。它是什么?Emmp,怎么实现这个数据库的增删改、查操作?Emmp中什么叫自动填充,什么叫乐观所等等内容,这是关于咱们内容的一个介绍,各位先知道,然后我下面就给大家来详细介绍一下这个MT,那咱们来看一下。
02:14
首先我们先看第一个内容,就是什么是MD,那我们看一下啊,MP呢,它全称叫买杯plus,是买be的一个什么增强工具,也就是说它本质上就是买,它在买be基础之上只做增强,不做改变,它的目的是什么呢?大家看最后两段话,这里写的很清楚,为简化开发而生,为提高效率而生,也就是说咱用MP之后,我们写代码会更加简单,因为它里边把核心部分给咱们都封装的,咱用它可以很方便的实现对于数据库的增删改查操作。这是关于他的一个自介绍,那介绍之后呢,咱们下面就来详细用一下这个东西,首先我们先写一个MP的一个最基本的入门,让大家先感受一下GMP到底该怎么去用,那咱来做一下啊。
03:17
首先第一步,因为咱们要操作数据库嘛,所以第一步呢,我就先创建一个数据库。然后创建一个数据库表,我们在里边做这个操作,那我们来快速做一下。我就按照课件中的流程再来实现了啊,首先第一步呢,我建个数据库,比如数据库的名字我就叫买be class叫这个名字,那我在里边我来创建一下。我直接啊,这里边我之前创建过就叫made plus,咱就用它了,然后创建之后呢,在里边我建个表,这个表比如说我就叫user,然后你可以把我课件中的这段话直接复制过来,我这个已经提前创建过了,表里边有这么四个字段,ID名称、年龄和邮箱,然后向表中我们加上一些数据,所以这时候我们做的第一部分,咱们创建数据库,然后创建一个数据表。
04:15
比如说咱对这个进行操作,然后创建之后呢,咱们进入到我们的第二部分。那我写一下。第二步呢,因为咱要写代码嘛,所以我就创建一个这么一个项目或者一个工程,这工程呢,我们为了方便用一个损布的,然后里面做操作。那下面打开idea,我们先创建之前这个我先关掉,然后咱们重新创建一个。那我在里边呢,我就新建一个工程,这个工程呢,我们建一个此部的这个工程,就是这个工程。然后咱们点下一步。点完下一步之后,在里边写上它那个坐标,我们起个名字叫com.a硅谷,比如我叫这个DEMOMP。
05:04
Test的是为了不重复选择JAVA8,然后咱们点下一步,这里边我强调咱们现在用的是不我们统一都用那个2.2.1版本,那我先随便选个,然后一会儿咱改成20201,所以这是我们的第二步,建一个齿轮步部的工程,咱们等它创建出来。我们稍等一下,我选择当前窗口,然后现在大家看这个项目应该已经创建出来了,创建之后呢,在里边呢,咱们把版本统一改成2.2.1版本,咱用到统一同一个版本,用这个版本改成它。然后改完之后,现在这步我们就完成了,就是建立一个部的工程,然后咱们我截个图,统一改成2.2.1版本。第二步,然后这步做到之后,下面我们进入到第三步,那第三步怎么做的,我们来看一下啊,就是做法很简单,大家注意咱们现在要用的是不是叫这个买plus,那我们要用的话,首先是不是要做这个事情。
06:15
是不是引用它的依赖呀,包括它的相关依赖,然后引入依赖之后,在里边我们就可以编写它的相关代码,那咱下面进入到我们的就是第三步,我在里边给大家解下。第三步呢,我们做法就是在我们的项目中引入MP和它相关的依赖,把这个引入,这依赖呢,不需要各位记,我在课件中给大家都听出来了,我把依赖咱直接复制过就可以了,那我们先看一下啊,在这个里边,首先你看这依赖是不是有。准部特有包有T等,然后在里边我们再加上我们需要的依赖,那我从里面复制啊,首先第一个依赖,大家看这个依赖。
07:02
这是什么鸡蛋?是不是这个my be plus鸡蛋,咱把它直接复制过来。然后大家看啊,买plus的依赖的名字叫做苞米豆,我们现在用的版本是3.3.1的版本,这是买V依赖,然后除了它之外,我们再引入就是买so的依赖,包括还依赖叫这个loan book的依赖,我把两个依赖给大家都拿过来。然后我解释一下,买soq不用说了,就是买soq的驱动依赖,然后这个logbook,我说各位是否知道,就是这个依赖可以没有,有它就是一个好处,为了简化这一类的开发,你没有它的话,咱就要手动生成get set的方法,有它之后,这get set方法不需要写,用个注解就会实现。但是long box里面用的时候需要安装它的这个插件,怎么装,我课件中都写的很清楚了,我这里写到。
08:00
如果你在IDEA2019版本中,你来到setting play中搜一个low进行安装,如果在2018版本中,过程一样,搜索logbook进行安装,安装之后就可以用了。所以这样的话,咱现在就把前三步就完成了,创建数据库,创建表、建损库的工程,然后在里边引入依赖这个完成了,完成之后咱们继续往下做。那下面怎么做呢?给个未来写下,咱们进入到就是第四步。然后写下啊,我就按照我课件中的流程了。因为咱们现在是不是要操作数据库,所以你是不是要配置一下你数据库的信息啊,比如说你数据库的驱动,包括它的地址等等,所以咱们在里边就可以做一个配置,然后写下第四步。配置数据库的信息,而数据库信息呢,在我们此部工程中,咱是不是可以来到它这个就是我们点pro里边,在这里边我们做配置,那咱们现在就在里边,我们可以完成这么一个配置。
09:10
我把这个给各位接过来。在里边配置数据库的信息,而数据库信息配置中啊,有一个问题给各位特别说一下啊,我这这里也写到了,如果说你用的是死人BOO2.0的版本,那你写的就是这么一个地址,包括驱动的名字,如果你用的是2.1及其以上版本,它内置用的是JDJDBC8的驱动,所以咱需要加上这个驱动地址,包括在地址中需要加上一个市区。因为各位知道咱们中国是哪个市区,是中八区,所以它不一样,因为这个spring boot2.1以上是支持买S8,它需要用到这个驱动,而我刚才选的这boot是哪个版本。是不是2.2.1版本,所以咱需要用到这个驱动,这个各位特别注意一下,所以咱们在里边直接配置就可以了,那我这里边给各位配置一下。
10:09
我来做个配置啊,因为他现在啊就还在下载,我给它关掉,咱重新给他打开一下,它就不下载了,因为我们用的是2.21版本,我已经提前下过了,默认是没有下载的,各位可以按照你的网络给它快速下载就可以了。啊,我这里啊,给它把idea重启一下,咱等它重启出来,它就不下载了。等它加载完成啊。好,现在加载完成了,然后加载完成之后呢,在里边咱就可以啊,在application点引边把那个相关配置给它拿进来,但是现在有依赖,那咱把这项目给他先刷新一下,我把这微问点开,然后点那刷新,先做一个刷新,让他那文件啊,就是颜色有一个不同的变化。先刷新一下啊,咱们稍等一下。
11:03
好,大家看啊,现在颜色都变了,然后咱们打开v.pro把我课件中这个驱动的这个相关内容给它就复制过来,咱们复制到我这个里边来,我给他复制一下。就在我这里面。啊,然后复制过程中各位注意啊,咱先稍微改一下,因为我现在我这个数据库应该用的不是local house,我用的是这个地址192.168.44.164,所以我要改成这个地址,然后改成你的数据库那个用户名和密码,然后给它改一下。首先我这个地址就是192.168.44.164。下面加上数据库的用户名,加上密码,我这密码是入123,所以咱们现在把这步就完成了,在我这个配置文件中加上你的数据库的一些基本信息配置,配置中各位特别注意驱动的地址,包括加上时区以及用户密码,不要写错。
12:06
第四步就完成了,然后完成之后我们继续往下来做,那下面咱们干什么呢?因为咱们肯定要操作数据库嘛,一般来讲我一个数据库的表跟咱们一个实体类是不是要对应,那我就写上实体类,然后使步骤过程中写上启动类,最终我们写核心代码,那咱们下面就往下写下。那我来做一下啊,首先在这里边呢,我先建一个包,这个包就放咱的实体类,比如我起个名字叫这个。氨体实体,然后在ant中咱们创建一个类,这个类我就叫user,我让user跟我表中的字段对应,因为我表里面大家看到是不是有四个字段,所以我把这四个字段对应我的属性,我就直接复制一下啊,就这么四个。
13:00
我把这段代码直接我就给它复制过来到我这个user侧类中,然后复制之后,如果说咱用之前方式,我是不是要生成这四个属性的get和set方法呀,但是目前呢,因为咱们引入了一个依赖,这个依赖大家看。是不是叫longbook呀?它的好处是什么?你不需要写get set的方法,在类上面直接加上个注解就可以了,这注解名字就叫date,你加上date之后,咱可以看一下,它会帮咱们把这个get set方法都生出来,所以这个会特别方便。所以现在咱就把这个是一类就创建了,然后创建之后在这里边我再来个包,写咱们操作的核心部分,咱就建一个叫map,因为咱们应该各位同学都知道MP是不是就是买be,买bet的写的过程中是不是要建一个interface接口,然后有它配置文件,所以现在在里边我们来一个包,然后在包里边呢,咱们也是建一个interfe的接口,跟买杯是一样的,那这接口起个名字我就叫。
14:10
U map这就可以了,但是我强调啊,下面写的是咱们的核心部分,因为刚才我提到MP就是对买杯T的做封装,这单怎么用的,大家看我的课件中就是这个代码。你让这个你的map就去继承一个interface接口,这接口就叫base map,因为在base map中,它把核心代码给咱们都封装了,所以它核心部分就在这里,那我在里边写一下,让我这个user map记成一个接口叫做base map,里边加上你实体类的这个类型我们是user。这样的话我们就完成了,然后咱们可以看一下这个base map中的代码。各位看到啊,这是它的源码中,你发现里边是不是有很多方法,这些方法都是由MP帮咱们封装的,就是有对你数据库的最基本的增删改造方法,比如说咱看一个。
15:14
大家看第一个方法insert什么,是不是就添加比例的,是不是删除阿V的,修改select的,是不是查询,所以它里边把咱们常用的方法都给咱封装了,咱们只需要让我们的map继承被子map就可以了,这样的话这就完成了,就这么来做。然后完成之后呢,最后啊,咱们来做个测试啊,当然现在这过程中有一个启动类,咱们把体类需要稍微改一下,应该是咱们子部中的知识,在球类上边再加个注解叫map磁开,然后加上你那个map那个高的一个固定。把这路径加上,为什么加这个呢?给大家说一下,因为咱们的map是不是一个interfe接口,这接口是不是要动态生成一个它的实现类对象,而动态生成对象默认找不到,咱需要加这个map sky就是map扫描才能找到它动态生成那个对象就是这个目的,所以咱们把它加上,这样的话就完成了,所以咱们现在就完成这个开发,而核心部分其实就在这里。
16:23
让咱们的interface继承被就可以做到。我把这个给各位写过来,是咱们的第五步。编写。核心代码,核心代码就是一个继承,然后完成之后,最后呢,咱就可以做个测试了,测试的话呢,因为咱现在还没有起到页面,所以为了方便,我就在T里边咱就直接做测试了,因为这个可以直接注入,可以直接测试。那我来写一下啊,首先我把那个map给它注进来,是咱们此中的知识,我写这个user map。User Apple是不是注入了,然后注入之后来下面我来写个方法,假如说我们就写第一个方法,我就来一个查询表中的所有记录,把表中所有记录都查出来。
17:12
那怎么做呢?各位注意啊,你就直接啊调user map中的方法就可以了,比如说咱找个方法,大家看这方法。是不叫例子,而这方法中有参数,就这参数咱后面说的条件目前没有,咱先来一个空,然后这个方法大家看它的返回值。是什么?是不是一个粒子集合呀,它就可以得到咱们表里面的所有数据,我把这users做输出,所以这样的话咱就完成了,这是关于我们说这个MP的一个简单入门。但是起完之后呢,细心的同学发现。处理是报错的,我强调为什么报错啊,第一个这错误其实咱们可以忽略不管,它能运行,但是他报错目的是什么呢?他告诉你说这个user map找不到对象,因为这user map对象展示出动态生成的,其实它最终能生出来。
18:09
但你不让他报错怎么做?你在婴儿的上面加上一个固解。这各位应该能知道啊,Repttery是不是交给使用管理,而这加上之后,你看这里边是不是就没有错误了,所以这样的话咱就完成了一个最基本的入门力,我们操作中就是核心部分在map中继承贝斯map,然后咱们都调里面的方法实现,刚才咱们测试中就做了一个查询所有数据,那我们就直接调user map中,这个方法叫select list,就能查出表中的所有记录。所以这样的话,咱们把入万例就写完了,写完之后最后咱做个测试,我把单元测试方法咱们执行一下,就看一下最终效果什么样,就看这数据能不能查出来。
19:00
那我们等着它执行看一下结果啊,嗯。在执行中啊,特别说一点啊,一般来讲,我会发现第一次执行很慢,为什么很慢呢?因为第一次执行的时候呢,这个就是idea,它会取编译代码,然后再执行,所以第一次很慢,所以第二次会变快,因为第一次它要进行编译,那我们看一下数据。咱找一下啊,大家看。数据是不是有了,你看这一部分,就是这部分得到的是不是咱们查出的数据啊,就是把我们这个历史集合输出,因为里边有很多user user拥有to string,所以他把值最终输出了,这样的话咱们就完成了MP的一个最基本的入完力,大家把这过程先给它熟练掌握,重点是这个。继承的部分。咱就写完了。
我来说两句