00:00
好,那我们来测试了这个添加功能之后呢,下面咱们就可以来测试这个查询功能。那首先呢,在这先给大家说明一个问题啊,就是说我们的po XL中,因为我们引入的g unit14个版本。四的版本啊,所以说我们给大家讲的是spring整合启用IT4,那其实也可以整合启用启用五啊,只不过就是咱们在这用到的夹包不同,然后我们在这个地方咱们所使用的注解不同。OK吧,然后它最终的效果是一样的,我们都可以干什么?当我们把当前的测试类呢在spring的测试环境中执行的时候,我们就可以直接通过注入的方式来获取IOC容器中的B了,一样的效果。OK吧,只不过在这用的注解不一样,比如说spring整合启用五这个注解,它叫做就是我们设置这个,呃,测试类的运行环境的时候,咱们用的是一斯ten的位。然后呢,同时它也为我们提供了一个复合注解,咱们只要用一个注解就能够实现这两个注解的功能,知道吧?哎,所以大家有兴趣你可以去网上查一下,它没有什么区别啊,就是注解跟咱们所使用的依赖的这个版本不同,OK吧,好,然后呢,下面呢,咱们就来测试一下这个查询功能,首先呢,咱们先这样test,然后public VO,那我们的查询就稍微有些麻烦了,为什么?因为咱们大家都知道查询功能,我们可以查询一条数据为实体类对象,可以查询多条数据为实体类的集合,可以查询单行单列的数据,对不对?所以说我们在这呢,咱们把这三种方三种查询的情况咱们都写一下啊,就get user,然后by ID好。
01:43
然后大家看,那我们可以先把咱们的circle语句设置出来,或者说我们可先把咱们的实体类给创建出来,对吧?然后com.at的硅谷,点spring,然后点pogo,然后点user就可以好,然后这里面都有什么属性,然后一个ineg类型的ID,然后呢是一个string类型的username,然后string类型的class word,然后下面是in tIgEr类型的年龄,然后是string类型的gender。
02:20
然后最后一个是词string类型的em email邮箱,好,然后咱们来设置它的有参构造,还有就是它的无参构造,然后再来设置咱们的to string方法,然后和我们的这个set跟get方法啊啊。然后再来设置它的set跟get行,那咱们就设置完了,那设置完了之后呢,那我们就可以来进行测试了呗,咱们先把CIRCLE5句写一下,String circle等于双引号,叫做select的星,From t_T_user然后while ID等于问号就可以了啊好,然后下面呢,那我们现在是不是就需要通过gd BT template里面的方法来实现查询功能了?
03:05
那咱们现在要用哪个方法呢?大家注意query方法。Query方法,然后就是查询的方法,然后呢,我们现在要查询的是不是应该是一个对象啊,对不对,所以说我们要用到的方法叫query for object来大家看好啊,就在这呢啊,然后这个方法呢,里面一共有几个参数,三个参数,首先第一个参数是circle语句,第二个参数叫做role maper。什么意思啊,肉是行,Map叫映射,那大家想想,那我们现在咱们要想来查询,把一条数据查询为实体类对象,那我们是不是就要干嘛呢?咱们是不是就需要来设置一下我们要转换为一个什么样的实体类对象?对吧,所以这个东西其实就是我们当前来设置我们所查询的数据和咱们的实体类之间的一个映射关系的啊,OK吧,就相当于谁呀,相当于我们原来在DB里面来写的那个叫做结果及处理器。
04:02
啊,如果大家没学过的话,你就听一下就行啊,其实也就相当于咱们的my be里面你设置的结果映射知道吧?啊,结果类型,然后在这它叫什么,它叫入map,这个东西呢,也没有那么麻烦,因为它给我们设置的有默认的映射关系啊,所以说咱们直接来选择这个方法,然后首先circle传进来,然后第二个room map,咱们写什么?大家注意啊,直接来写一个叫new bin b property room map b是实体类,Property是属性,也就是说我们要把查询出来的字段跟咱们所对应的实体类中的属性来进行映射,OK吧,而且他们具有默认的映射关系,什么叫默认的映射关系?字段名跟属性名一致,就能够进行赋值,OK吧,行,所以说这个东西大家就看一下,因为以后咱们用的最多的还是买be斯啊,所以说呢,大家也这个,你只需要这个知道咱们的查询该怎么去用就行啊,咱们也只有在我们。
05:02
说明是事物里面对吧,然后会给大家来用一次啊好,然后下面呢,大家再来看,那我们现在呢,大家看好这个构造器它的一个参数,然后在这呢,有一个叫做map的class,什么意思?Map的是映射class的类型,也就是我们当前咱们要把查询出来的数据,然后所映射的这个实体类的类型。所以说在这写什么叫做user,然后点class就可以啊,然后最后一个参数是干啥的,来设置长度可变的参数列表,为我们当前SQ语句中的占位数来进行赋值,那我比如说我们查询一个ID为一的数据,对吧,那在这呢,咱们直接写个一就可以啊,然后获得一个user对象,然后我们现在咱们直接把U给输出,然后我们在这来一个执行,然后大家来看一下啊,然后就可以直接将我们当前咱们的这个ID唯一的这个用户信息给他查询出来,大家看啊。
06:00
是不是就查询出来了,那如果我们在这咱们要写个二的话,那是不是也能够将ID为二的数据查询,OK吧,行,那这个咱们获取完之后啊,这个大家注意咱们再往下看,然后咱们再来查询咱们当前这个表里面的多条数据为一个list的集合,好,然后叫test,比如说咱们叫get or user星,然后呢,一样的先写circle语句string circle等于双引号叫做select的星,From,表名T_U然后我们直接通过JD bc template里面的方法来执行查询功能就可以啊怎么写呢?大家注意看这啊,然后query方法,你看它的返回值是不是直接就是一个list的集合呀,所以说你看参数是不是也跟咱们上面的query for object的方法的参数是一模一样的,那不管我们是查询一条数据,你还是查询多条数据为例子的集合,我们是不是都要来设置它的映射关系对不对?所以说咱们用的直接就是query方法啊,然后怎么写,首先circlel语句,然后第二个一样的叫做B,叫做new b property room map。
07:11
OK。然后把我们当前咱们的。这个参数给它设置出来啊,就是优点点。Class,然后大家看它的返回值,直接就是一个list集合,然后我们下面通过list.for each,然后来进行循环就可以啊啊。OK,然后现在咱们来一个执行,大家看一下啊,没有什么难的地方,没有什么难度啊,那毕竟咱们学过好多这个持久化的,持久化层的技术,对不对,原生的GDBC咱们也学过对吧?然后咱们也自己封装过对吧?然后有的同学呢,也学过DB us,那咱们还学过my bities,这有什么难的是不是啊,好,大家注意,那我们现在就能把它查出来。然后咱们的最后一种查询呢,然后就是查询单行单列的数据,那咱们在这比如说我们来模拟一下查询这个表里面的总数据量,叫做test get count,然后括号,然后首先咱们也是先把circle口写出来,Circle等于双引号,叫什么叫select count括号星啊,然后from表明提下划线,User就完事了。
08:22
好,然后那我们现在咱们要用到哪个方法,大家注意还是query for object。因为我们现在需要把咱们当前的这个查询出来的单行单列的数据来查询为一个Java对象的,所以说咱们用到的还是query for object的,那但是咱们还需要用到这个room map吗?不需要了,咱们不需要映射,因为你查询出来的就是单行单列的数据,我们直接来指定你单行单列的这个数据要查询出来,要查询出来之后转换为什么类型就行啊,大家注意就这个方法和这个方法,如果你有占位符,那咱们就用这个方法,可以有一个长度可变的参数列表嘛,对不对,如果说你没有占位符,那你就用这个,然后直接来设置我们当前查询出来的单行单列的这个唯一的这个数据,你要转换为什么类型就行啊,好在这是circle,那在这咱们需要转为什么类型,大家说ineg.class class class就可以啊行,然后这个就叫做count,然后然后count就可以。
09:26
好,下面我们在这来一个执行,大家注意啊,这个时候咱们就可以把当前这个表里面的总记录数,然后查询出来,大家看,然后在这咱们所获得的信息是不是二。没问题吧,好,那所以这就是我们通过JD bc template来实现的三种查询的功能,大家注意非常简单啊,然后大家呢,就是把增删改查,还有这三种咱们常见的查询功能给测试一下就可以啊,然后我们主要呢,就是以它,然后这个以JDBC在操作数据库的过程中,然后来实现一下咱们这个对事物的一个测试就可以啊。
我来说两句