00:00
好。我们刚才呢,将生成的这些文件啊,特别是这个查询,我们新增了一些方法,那么接下来呢,我们在写项目之前,我们就先把数据库层的啊,这个都调试通,然后呢我们再来写。哎,我们第五波。那就来测试啊,咱们这些map。那么呢,把这些呢,我们都测试成功以后呢,我们就可以写了,好,我们来在这进行测试。我们专门建一个测试类。我们在这里边呢,来测试。测试。咱们这样层。工作。好。我来写一个测试方法。先来就来测试,先用我们这些增删改查,我们就来先插入一些呃数据再来查询删除,我们都测一测。
01:01
一个test。来测试。好,现在呢,我们要测试的是呢,我们先来测啊,因为这个员工查询的话呢,还需要有这些部门信息,我们就先来测试部门的这个member能不能工作,我们先来测试部门。好,我们来到我们这个测试里边,我们先来测试。测试咱们这个department的。那么这个测试要怎么做呢?因为我们这些,哎,我们现在呢,哎用马spring整合了这个马贝蒂斯,所以说呢,我们这spring容器里边,哎,我们又配了这些自动扫描map的实现,我们能从spring容器里边拿到这些map的接口实现。那么要测的话呢,啊,大家最能想到的,那么第一步就是啊,根据配置文件创建什么的,咱们这个LC容器把这个创建出来,然后第二步从容器中拿。
02:03
中获取map。中获取咱们这个member。哎,比如说呢,哎,我们先applicationtest,我们IOC先一个。Application contest。Class。诶,我们来new一个class pass application count,好,传入这个配置文件的位置,哎,把它拿过来。好把IOC容器拿到,拿到以后呢,我们就可以ioc.get be,哎,我们拿到每一个,比如呢,我们department member,诶我们能想到的呢,是这么做department member啊写错了。Class,好,我们呢能想到这么做,当然了,这样也可以,但是呢,我们现在来我们来推荐。Spring的项目呢?
03:01
我们就可以使用啊,咱们这个单元测试。啊,可以自动咱们这个注入我们需要的组件。这样测试呢,就更贴近于我们这个项目实际了啊,我把这两个除掉。原生的,那么spring在单元测试怎么用呢?也非常简单,首先呢,需要一个注解,叫contest。Con contest configuration,但是这个注解呢,我们来看啊,现在是没有的,因为我们还没有导入spring单元测试的功能模块,所以说呢,我们第一步导入test模块。比如说呢,我们来到我们这个泡沫文件中。我们现在呢,把spring的IOC这些我们都倒了,就是的单元测试我们没有整,那我们就是放在这。来说一下。
04:01
咱们导入呢,咱们这个单元测试模块。那么这个单元测试模块呢,我们可以来到我们这个中央仓库,我们来找到spring test,诶就是这个。啊,我们拿到这个测试模块。好,Spring test还是一样版本,对应4.3.7,诶,我们把它拿过来。把这个测试模块我们拿到以后呢,哎,我们这个里边就会引入spring test模块。来看一下,哎,这就有了,那么我呢,我们接下来就用这个测试来做。我们来到这个测试里边,用我们这个注解,首先在这个类上标一个注解叫contest。Contest configuration就是来指定可以使用它。第二步。咱们使用这个注写指定。配置文件的位置。
05:03
啊,它呢,自动帮我们创建出LC容器,那好我们来指定,我们来看怎么指定呢?它里边有属性,有一个叫locations,诶它还是一个string数组,那么多个配置文件呢,也可以同时指定,指定的时候呢,我们用逗号分割就行了,好我们就来写。来指定。有一个属性叫locations啊,它是一个数组啊,我们spring的配置文件呢,我们现在就一个它来来指定。第一个呢,它是在内路径下class pass下的,咱们这个application context面好把地接下来呢在使用,哎,我们这个叫runway子。啊,这个呢,是我们解unit里边的注解,就是说呢,我们运行单元测试的时候,你可以用什么哪个。哪个单元测试来运行,那么这一块呢,指定咱们这个啊value,这个value呢,就是我们单元测试的这个功能模块,我们现在是用spring的单元测试,那么呢,我们就叫。
06:10
借用你的。啊4CLASS装,哎这个呢,是我们这个提供的单元测试模块,我们用所有的test运行的时候呢,都是它来运行就行了。那接下来我们要用哪些组件就能像我们原生开发一样,哎,直接O。直接owa。这些我们要用的是要使用的。的组件即可。啊,所以说呢,我就这一块不创建这么一堆了,那么我们要用department member来,我们直接使用department member,好我这里边一个O主。好,我们就在这里边测试,来,我们先来输出,我们来看能不能拿到这个。来测试。啊,还是单元测试运行解约和test走。
07:05
我们来看诶,他拿到成功了,就拿到这个proxy没问题,那我们接下来就来调用这些增删改查方法。我们来先第一个啊插入啊。插入咱们几个部门。那么呢,我们就调用department member,点哪个插入方法呢?这有一个insert,哎,我们刚才看了,只要是insert,它是全字段插入的,我们用这个,哎insert selective它有选择的插入。这个有选择的插入呢,也就是说我们带了部门ID,我们来看啊,Insert selective。因为我们部门ID是自增的,所以说呢,我们不用带它,那这一块呢,就会有判断,你带了部门ID才有ID自感没带部部门,哎带了部门内有name字段,带了哪个值插入哪个值好,我们就用这个插入。Selective,那我们呢,就来扭一个department好。
08:02
那为了我们这个插入方便呢,我们为department,我们写一个有参构造器。我们在new的同时,就给它赋好值。写上咱们这个用有参构造器,哎,大家一定注意啊,一旦生成有参构造器,一定要生成无参构造器,哎,我们这些反式要经常使用无参构造器。好,我们来到咱们这个测试里边。好,我们呢,先插入几个部门,第一个部门我直接在这里边扭吧,扭一个department。好ID我们不用管,那就传入呢,哎,比如呢,我们叫开发部。好,接下来呢,我们要再来插入。第2INSERT,比如呢,我们new一个department啊,我们再来插入一个测试部。好,我们整个插入完成以后,我们来看效果,来点我们来运行。
09:02
走。好,这这里边运行成功,我们来数据库里边看部门,诶开发部测试部就有了,行没问题,那么这个修改删除什么的,那么大家接下来留给大家的时间来测就行,那我再来测试一下。部门的插入,哎,我们就测试完了,我再来生成一些,生成咱们这个啊员工。这个数据,哎,正好呢,我们来测试,员工查。插入好,那么员工插入呢,我们同样也来让他自动的注入一。Employ。然后呢,At o where,我们来自动的,哎,注入employee member,那么呢,我们来调用这个member的insert,也是insert selective。我们有选择性的插入,因为ID字段是自增的,为了方便,我们也一样给employee生成有参无参构造器。
10:05
来,我们先生成有参构造性,我们不用他们的属性,那么这几个呢,我们用上。好,再来生成一个无参构造器。我们把这些都不要,这是无参构造器,哎,生成有参,我们一定同时生成无参啊好,然后呢,我们在这里边测试插入一个员工。啊,比如呢,我又一个employee对象。好,这里边呢,有一个呢,好员工呢,比如呢,我们第一个员工,哎,我们就叫杰瑞。哎,然后呢,我们这一块呢,它的这个真的,哎,因为我我们这个是MF,我们来写一个M。然后呢?里面我们这个呢,我们就叫杰瑞。At at硅谷。点。com。好didd,那么部门ID呢,我们是一号部门,哎,我们就让它成为一号部门,那我们这个mi它是一个字符串。
11:10
虽然数据库里边存的是一个字符,但是我们这个扎宾我们来看啊,它生成的时候呢。在这里边,我们这个针的对应的是一个字符串,好。那么呢,我们接下来。在这里边好,我们这个插入一个员工,我们来测试看行不行。走。啊,运行成功,我们在员工表里边,哎,这个就插入成功了,没问题。那么呢,我们后来呢,为了我们这个后来测试方便,我们就来批量的插入来批量。插入。多个。那么这个多个员工的员工名呢,我们就用UUID来做就行了,那么这个批量插入呢,我们来看啊,现在这个单个就不行了,批量插入呢啊,我们来也回顾一下,我们要批量的话呢,有好多办法,我们可以写一个新的咱们这个定义,一个新的方法传入一个员工几何。
12:10
当然我们也可以直接使用咱们这个。可以执行批量操作的circle session使用可以执行批量操作的咱们这个circles。这个circle session只要拿到了呢,我们就可以用一个for循环,诶我先写上伪代码,然后呢,我们在这里边每次插入这个员工啊,我们插上一千四可以生成1000条数据,那么咱们这一块的,哎,员工的姓名什么的呢,我们就用UID生成,好把这一段代码我们先放在这。那么这个批量的session呢,因为后来啊,后来呢,我们项目中可能也经常会用到,所以说我直接给咱们这个IOC容器中,哎。我们来配置一个。
13:00
配置一个。一个可以执行批量。啊,方便以后我们这个使用啊。好,我们在这里边呢,我们来配置B。Class。我们说在这里边注入circle session的时候呢,有一个叫circle session complete。这个是我们马贝跟spring整合的时候用的东西。好ID,那么这个ID呢,我们就叫S。他帮我们,哎,它就是一个circle session,那么我们来,哎,它里边呢,是我们来把它点进去。我们来看啊,它没有无参构造器,有这些有参构造器,我们可以用第二个有参构造器传入我们SQ session3以及我们这个啊执行器的这个类型。好,我们使用construct来指定,指定第一个参数啊,有指定我们circle session的值。
14:01
这circle session呢,就是我们之前,哎,我们注入的这个circle session factor我们配的哈。指向它,那么同样的呢,哎,我们来要用一个批量的,哎。哎,我们这个type啊Y6值,那我们能这个批量呢,我们都知道,哎,我们呢,要写一个属性叫半值,哎,这个值就是说呢,我们在马贝蒂斯配置的时候,我们这个执行器类型默认不是这个批量的啊,我们用这个批量的。好,接下来呢,我们就可以在这个类里边,好,我可以自动的注入一个。30好。Owa。这块呢,就是一个批量的session,那么呢,我们通过这个circle session.get member,我们拿到的这个employee member,这就是能执行批量操作的,它的增删改查你多次就能执行批量,如果我们不拿这个S,拿我们直接就一个for循环来插入1000次,哎,那么这就不是一个批量的,它是需要挺长时间的,所以说呢,我们就来用它。
15:18
用它我们来就来生成1000条测试数据,哎,等于零。到哎,小于,哎,咱们这1000。爱加加。我们来生成这些测试数据,那么每一次呢,我们就点我们insert。我们来插入一个员工又一个employee对象ID,我们不用管自增,而员工的姓名呢,我们用UUID可以生成一下好都呢先生成M。这个邮箱呢啊,我们邮箱也是at硅谷。点com,哎,前缀呢,就是我们这个姓名的前缀,我们一会儿声称,那么当我们都先来来到一号开发部。
16:03
好,我们把这些数据我们来生成一下啊,我们来整一个UUIDUU id.random u u ID点二,那么这个可以转一下。我们来截取UID太长了,我们截取上一部分啊。比如呢,我们截取就从零到五的这个部分。啊,这是我们生成的这个UUID。我们把它作为咱们这个名,哎,作为名的时候呢,我们同时也可以拼上啊,这是当前的第一个。员工,我们可以拼上这个A。拼上这个,哎。啊,前面本来是字符串,所以说我们直接拼好,我们把这个呢拿过来,这就是我们员工的姓名,那么员工的邮箱地址呢,就是他的姓名,加上硅谷这一串。好,我们来测试一下这1000条的这个批量。平常执行完的话呢,我们来试一试。咱们这个批量完成。
17:01
来,我们来测试一下。走。好,稍等,让他批量完成。好,批量完成,我们来看数据库里边。刷新诶,这里面的数据就进来了啊,有非常多的数据,那么呢,我们就删除之类的,我们就都可以用它来测了。好,这个呢,我们插入就做完了,那么接下来呢,大家把删除修改那些大家就可以来测试一遍,我们接下来就开始写增删改查数据库通了以后,那么我们就不担心咱们数据库的增删改查了,我们就只差写我们这个页面的这跳转业务逻辑了。
我来说两句