00:00
各位同学大家好,下面呢,我们按照刚才分析的过程给大家演示基于MY实验对数据库的增删给他操作。咱们以角色管理模块为例,首先第一部分我们先创建数据库,包括把角色表进行创建,那我下面做个操作。大家来看啊,我在资料里边呢,给各位提供了数据库的建表语句,我把语句打开,咱们先来看一下。第一部分我们建个数据库,叫硅谷OA,然后使用数据库,使用之后里面有很多表,咱们先找到我们当前用的这张表,我们来找一下,应该是在这个位置叫SYS肉,就是我们说的角色表,在角色表里边有很多相关字段,咱们快速看一下。第一个ID就是角色ID,它是一个主,并且是一个自动增长。然后第二个是角色名称,包括角色编号以及角色描述,另外就是创建修改时间等其他字段,那我下面呢,把这个表我们做一个创建,咱们来做一个执行。
01:09
现在我打开这个连接工具,我用的是DB这个社区版本打开啊,当然你可以用别的工具,然后打开之后我把这个。编辑器新建。新建之后,我们的第一部分大家看,先创建数据库,硅谷OA。创建之后我们使用数据库,使用之后把建表语句这部分咱们复制过来。现在我来做一个复制,也就是这个位置。复制之后到这个里边进行执行。然后现在这个库和表我们就完成创建,咱们刷新看一下,大家看里边啊,数据库中有硅谷OA,在硅谷OA中有表叫SYS,然后里边有我们刚才说的相关的这个列。
02:09
现在第一部分我们就完成了,完成之后我们继续往下来看,第二部分呢,我们在项目中呢,把boot的配置文件创建出来,咱们进行创建,大家看我课件里边啊,这是Bo的基础知识,如果各位对于Bo还不是特别清楚,我建议你把学会之后再来学习本课程,所以咱们按照的规则创建配置文件,第一个我建议个点样的文件,里边指定是DV,再来创建DV的文件里边指定端口号,包括其他信息,下面咱们开始创建。第一部分,我在项目中的service OA这个模块中建第一个配置文件。这个文件点样格式,当然你可以一个格式都是可以的,创建之后把内容咱们进行复制,指定当前的名字以及DV,创建之后再来创建第二个配置文件,Object-DV配置文件。
03:17
我把它写到这个位置。创建之后,我们在里边复制相关的这个内容,这部分各位直接复制就可以了。咱们详细看一下啊,这个内容到底都是什么意思?首先各位看第一部分指定当前的端口号是8800,当然你可以写别的端口号,只要不冲突就可以了。然后第二个指定日志的配置,这日志什么意思呢?我特别说明,因为咱们现在用到my plus是一个框架,框架底层呢,它是怎么执行的,包括它里边生成的语句长什么样子,它里边哪些参数,以及有哪些返回结果,这些通过日志配置我们都能看到,一会儿咱们会进行测试。
04:05
然后之后往下来看,下面呢是数据库的相关内容,包括第一部分指定这个数据源,这个数据源特别说一下啊,它是日本人开发一个数据库的连接,翻译过来有光的意思,所以咱们这里边plus默认用的是这个光的数据源,咱们可以通过百度简单看一下啊这个数据源。我这里边直接搜索一下这个光。啊,当然你这么搜索呢,可能搜索很多的那种啊,咱直接搜索一个这个。然后大家看啊,随便点个啊,这里写到。稍等啊啊,稍微有点慢。或者咱们换一个啊,换一个这个来看。
05:00
啊,这个也出来啊,咱就看这个,然后这里写到啊,它是一个数据库的连接,也就是my plus默认用的就是这个光的连接,当然你可以改成入一啊,是默认用的是,然后之后往下来看啊,这行什么意思呢?指的是我们数据库的驱动,因为咱们用的是MYSL8这个驱动,然后下一部分是数据库的地址,这个地址注意啊,要跟你的地址保持一致,另外强调看后面啊。这是什么指定十区?其实在高版本的MYS8里边,这十区可以不加了,咱为了规范给它也加上。另外这里边表示它的就业方式,咱们没有用SIL,用的是用名密码进行校验,包括指定字符编码条杠八。除此之外,下面是数据库的用户名和密码,注意密码要跟你的数据库密码保持一致。以上就是数据库的配置文件。这个咱就完成,完成之后我们继续往下来做,下面呢进入到第三步,第三步我们创建角色的实体类,这个实体类咱在model中已经统一引入了,那我们来找到这个实体类。
06:14
我们找到在。com。有个system,然后在里边有一个这个类。咱们打开看一下啊,大家看里边,首先这个类成了一个叫base,因为这里边你发现啊,我们这些类应该都了贝里有一些公共部分,咱先看主体内容啊,第一个注解叫date,它是生成属性的get方法,之前咱们也提到了,然后之后第二个注解说明啊,这个就我们简称的注解,它是什么意思呢?就表示你这个实习类对应的是你的哪张表,这个用的是表的名字。
07:00
大家看我的这个表是名字,所以指定用解table,然后除此之外看table field什么意思表示你这个属性跟表中的哪个字段对用注解进行表示,这都是MP中提供的。然后咱们看他继承这个base给他开。大家看里边啊,有这个ID啊,有时间有其他的新内容,这是里边其他的部分,也就是一些公共部分,然后在这个base个table,然后里面一个什意呢,表增长方式,如果说我加的是凹凸,那就表示主键是自动增长,另外里边还有其他方式,我们也看一下啊。咱们加个大家看,你看里有一个叫IDUID它里是随生成一个,包括有input表示需要自己手动,还有一个叫no表,没有策略,咱们现在是自动增长用的是一个叫o two,包括time after is等等。
08:20
然后除此之外,大家看最后一个啊,这个呢,咱们暂时没用到,给大家也先提一句,后面用到会再具体说一下,然后这里边加了一个属性,叫一个等于false。这是什么意思呢?说明啊,比如说我们现在这么来写,那你可以理解为我这个属性在表里边要有对应的字段,比如说你表里边必须有它对应的字段,如果没有它会出错,但是如果说我加了这个使用之后,那它表示表里边可以没有跟它对应的字段。这个叫exist,等于false表,里边可以没有跟它的字段,这是咱们创建的试题类,之前我们都统一引入了。
09:05
这是我们完成的第三步,然后这个完成之后,下面呢,我们进入到第四步,也是咱们最核心部分,因为咱们用的MP最终目的是操作数据库,而操作数据库按照咱们的开发过程,咱肯定有web层、service层,还有这个DAO层,或者说叫map层,咱们现在先做个测试,所以下面我来写下这个map层的部分。给大家做个创建。我来到这个位置。首先咱们先建个包,这个包呢,我叫com点。后面这个结构不太好创建,我先建个启类,也是中的基础,那起类我在里边写一下。
10:00
咱们放到这个位置。我们就叫auto。创建创建之后呢,在启用类上面加上一个注解。然后加上之后里边加上这个方法。我把这个直接咱们就复制过来。放到这里。然后把它的依赖引入。所以大家看啊,现在这个启动类就完成了,完成之后呢,我在里边呢,再来个包,咱把那个做个创建来建个包。Map。然后map呢,也是我们学到买杯的知识,买的map怎么创建,咱们是不是建个接口,再建一个对应的配置文件,目前我们也可以这么用,但是因为咱们用的框架为了简化咱的开发,所以我现在其实如果说你只做最基本的自然给查操作,你可以没有配置文件,直接用里边封装方法就能实现对数据库的增删改查操作,所以我下面咱就建个接口,然后调方法进行操作。
11:12
那下面我来做创建,包括大家看我课件中就这个代码很简单,你个map,让他一个map叫base map就可以了,包括这里写到了创建map接口,继MP中封装的接口,那我在里边写下。咱们建一个interface。我起个名字就叫system。注意别建错啊,是interface。然后创建之后让他继承一个叫。贝。注意或者中,然后在base里加上就是你那个体,我们叫肉。
12:00
所以现在这map就完成了,完成之后咱们看一下这个map。我把这个点开啊。大家看里边啊,有很多方程方法,这个方法咱直接调就可以了,里边的具体实现框架给我们都做到了,大家看里面的方法啊,第一个insert。看名字能猜到这是什么的,是不是就有插入或者添加,然后看这些。是不是删除这些update是不是修改,包括有很多是不是查询,包括你看啊,比如说里边那不名义嘛,根据ID查询select count查询数量,在list查询反应集合,包括在的配置,是不是做分页,所以这些就是LP中给咱们封装的方法,给大家要演示的也是这些方法,这就是map部分的重建。所以现在这部分完成,完成之后呢,最后我们进行测试,这个测试呢,我这么来做,我现在啊在T里边测试,因为咱们是测试的一个技术,后面咱们写具体功能中,再把它的control service再完善,下面来测试。
13:13
然后在里边,首先我先建个。Com点。At硅谷。这个包,然后创建之后,在里边我来建一个测试类,我们起个名字就叫做test MP。呃,咱们叫DEMO1了啊,为了后面方便。创建之后,在上面我们加上一个注解,叫test。这样的话完成完成之后在里边你可以加上相关的测试方法,比如说我们先来一个方法public,我们就叫get查询所有。现在这个结构就完成了,然后完成过程中各位特别注意啊,就这个test in的依赖一定不要引错,因为现在默认用的是这UNIT5,所以咱们用的是这个依赖,这一定不要错啊,比如说什么意思,比如你引这个依赖,举个例子啊,比咱引它。
14:23
依览啊在变啊,是它ord A片现在完成完成之后呢,我们在里边进行测试,那怎么测试呢?因为它是此里边带的这种测试方式,咱们首先先肯定是完成一个注入。啊,这都是的基础啊,或者的基础。那咱们啊,我们用这个,或者说resource fair可以。咱们注意一下。就是我们这个。肉。Map。加上这个。
15:00
Map。然后住之后在里边调它的方法就可以了。但是注之后啊,大家发现一个问题。这里是不是报错了?么错,因咱们这个口肯定是不是它的实现类对象,但是这个实验类对象不是我们创建的,它是动态创建的一个实现类对象,所以现在问题就是他找不到这个动态创业对象,但是其实我们一块儿执行的时候,这对象是能找到的,所以怎么解决?两种方式,第一种方式可以不管,因为执行它是能执行的,然后第二种方式,你在map上边加上一个注解,让它不报错就可以了,那我加个注解啊,这注解不加也是可以的,我加稿re交给spring进行管理。所以现在你再来看是不是就没错了,没错之后我在里边做个执行,咱们先做第一个测试,就是查询。
16:04
所有记录,那我来做一下啊。里边有个方法,大家看啊,这个方法。例子,然后塞在list里边,我们看它方法中要传个参数,这参数其实是个条件,咱目前查所有不需要条件我就来一个,那样就可以了,最终它返回到大家看,就是一个例子记号。所以现在完成完成之后,我把这个结果我们快速给它做个输出就可以了啊,咱就直接啊,我就把这个例子直接输出一下了。所以现在这个最基础的方法我们就完成了,这是咱们写到的这么一个结构。然后这个完成之后,下面呢,咱们可以做个测试啊,但是测试之前呢,因为我现在这个表里边应该是没有数据,咱为了明确,我先手动加入这么一些数据,为了咱们进行测试。
17:01
手动给它加下啊,比如第一个ID。这里做个简单操作啊加一下。点击下面的加号第一个,比如说ID来个一啊,角色名称我就叫管理员,然后code就叫这个。包括这些我就随便写了,随便写这些值。所以现在我加入了第一条数据给它保存下,然后比如说我再加一个第二条数据。咱就加两条,为了测试啊,第二个比如说写一个角色,我们叫这个总经理。啊,它的一个code叫manager。这个描述我们来一个二,最终做个保存给大家看,现在数据我们就加进去了,然后加进数据之后,下面呢,我们来做一个执行,咱把这个执行一下单元测试嘛,直接执行就可以了,咱们看结果会怎么样。
18:00
我们快速等一下啊,然后看它出来的最终结果。然后大家看啊,执行之后我们发现啊,这里是报错了,是不是出现了异常啊,那咱们看一下它出现了什么异常,我们来看一下啊,注意啊,出现异常很正常,关键是看它是什么异常,而异常怎么看,我们一般来讲啊,但是不是绝对的,一般咱们找个单词,这个单词就是由什么引起。咱们看到他告诉我们啊,说目前你的这个B有问题,这个B他这个类型有问题,什么问题呢?哪个B有问题,说这个有问题。什么问题?看这句话啊,说至少它得有一个是不是这么一个对象,但是目前他没有找到,也就说我们刚才提的这个问题,我的map是个接口,它会动态创建对象,但是目前它动态间的对象我们找不到,所以他报这个错误,那怎么解决?多种方式啊,第一种方式,你在map上边加上一个注解,大家看我课件里边都写到了,这个注解叫map,或者说你在启动类上边加上一个注解都可以解决,那我就加到启动类上边。
19:23
这个注解叫什么,它叫。Map。此看就是指定你这个位置能找到动态创对象,而里边加什么,就是你map所在的包的径,我把这个的径们复制过来就可以了,你可以简这到动态创建对象,或者说你在map接口上面加个注解都是可以的,我就在这里加了,现在这就解决了,解决之后最后咱把这方法再执行一下,看一下最后的结果,就是最终结果到底是怎么样。
20:02
让他执行,就看能不能把表中的所有记录都给它查出来,我这里是把例子这些做了一个输出。等它执行,然后大家看啊,咱就看最后一行上面一会儿再说,你看最后一行呢,是不是输出这个对象,因为我们用date那个longb注解生成了方法,所以它里边有两对象,一个是管理员,一个是总经理,是不是都可以了,证明数据都得到了,另外大家再来看这位置呢,有一些相关的日志信息,就是我刚才在配置文件中给大家说到的这个内容。就这个有日志,然后你看里边啊,首先他告诉我们创建什么对象,然后他用了哪个连接,它的circle语句是怎么样的,有哪些参数,包括哪些结果,最终有几条记录,这是我们看到的日志的信息,因为目前没有参数,所以等于空,如果有参数里边都能看到。
21:01
所以咱们现在啊,通过以上这些基本的步骤,就完成了一个简单的测试,告诉各位到底该怎么去用,咱们刚才演示一个简单的查询,所有那一会儿给大家再快速演示它的其他操作。
我来说两句