00:00
好,那下面呢,我们来说一种比较新奇的一种查询方式,我们一般咱们查询出来一条数据之后,我们一般都是要把它转化为实体类对象的,但是大家说有没有一种情况,咱们查询出来的结果呀,它没有相对应的实体类。就比如说我们现在咱们要查询的结果里面呢。有这个分组函数,比如说我们现在要查询这个员工,然后呢,这个部门,这个部门里面的平均薪资,最高薪资,最低薪资以及薪资的总和,那大家想想这个时候咱们有相对应的实体类吗?可能没有,那没有的话,那这个时候我们应该怎么去做,大家注意啊,那这个时候咱们就要来说一下咱们的实体类和咱们的map了,那实体类里面呢,就像是之前呀,然后咱们在讲获取参数值的第四种情况的时候,对吧?咱们的第二种情况和第三种情况,咱们都是从map中获取数据,通过键就可以获取值,咱们的第四种情况传输过来的是一个实体的类型的参数,那这个时候我们可以通过属性名来获取属性值。
01:08
所以说我当时就跟大家说了呀,这个map集合的结构啊,跟咱们的实体类类型的结构很像,都是键值,对,只不过实体类中是属性和属性值对吧?好,然后呢,所以说呢,那我们现在呢,当我们查询数据的时候,大家想想,那我们实体类和map集合它有啥区别呀,实体类里面的属性它都是固定的。对吧,但是咱们的map集合里面的键固定不固定呢?不固定,哎,所以说当我们查询的结果没有相对应的实体类的时候,我们就可以把它查询出来为一个什么为map集合。OK吧,好,这个时候查询出来的结果大家能想象到,能想象到他长什么样吗?因为我们之前咱们查询出来的是一个实体类,那是因为字段名跟属性名一致,咱们就可以把这个字段赋值给相对应的属性,那现在咱们如果要查询出来的是一个map集合,好,然后这个时候咱们的map集合里面应该以什么为键,以字段名为键,以什么为值,以字段的值为止。
02:10
好,大家注意,这种方式以后用的很多,并不是说我们的每一个circle,你查询出来的结果都有相对应的实体类嘛,反而以后我们查询出来的结果好多时候都是没有相对应的实体类的,那这个时候怎么办?我们就需要查询出来一个map集合了,这个大家注意啊,好,比如说咱们在这咱们先来给大家写一个例子,然后呢,咱们还是一样的返回值呢,咱们设置为map,这个泛型呢,大家可以设置,你也可以不设置啊,比如说咱们来设置一下范型,咱们设置为string object,咱们叫get user by ID,咱们先来测试一下,把一条数据查询为一个map集合。好,然后to map,哎,这个大家看好,咱们的方法名字叫什么?叫做通过ID查询一个用户,然后以什么方式来获取,以map集合的方式获取,然后这里面同样也是一样传一个ID,然后呢,咱们加上一个AP啊好ID。
03:13
来杠,星星回撤。叫做根据ID,然后来查询用户信息,然后为一个map集合。好,下面咱们把这个方法复制来,放到我们当前咱们的映射文件中。好,然后是一个select标签ID要跟方法名一致,那这个时候大家说咱们的map咱们要写什么呢?我们现在还是要把它转换为实体类对象吗?不是,我们现在是要把它转换为一个map集合,所以说在这大家直接把咱们当前的map集合的类型给写进来就行。当然咱们上面刚才还跟大家写了一个内容,就是我们买be中啊,它为咱们Java中的一些常用的类型设置的类型别名,比如说map,它的别名就是map,所以说咱们在这直接写map就可以,OK吧,然后下面大家再来看,然后select share from t_user,然后well ID,然后等于井号大括号ID就可以啊好,那么下面我们就可以直接来测试了,大家注意啊,这个测试的结果大家一定要看好了,它长什么样,其实咱们再说一点啊,就大家一定要想清楚map集合的结构和我们的实体类类型的结构,然后里面它都是建直对,所以说它两个的结构是一样的。
04:36
所以我们能把咱们的结果查询为一个实体类类型,咱们也可以把结果查询为一个map集合类型,它俩的区别呀,再说一遍,就是你的实体类里面它的属性是固定的,但是咱们的map集合里面有固定的键吗?没有,所以说你查询为一个实体类的时候,咱们必须要满足字段名跟属性名一致,但是如果你查询的结果是一个map集合,那你随便你想查什么查什么,因为咱们map集合里面没有固定的键,你只要把这个数据查询出来之后,它就会以字段名为键,然后以字段的值为值存储到map中。
05:14
非常的方便,好,然后下面大家来看咱们要测试的方法,叫做get you by ID to map。好,咱们所使用的方法叫做map.get user by to map OK,获取一个map集合,然后咱们直接呢,把这个map集合呢给输出,好,下面大家来看这个效果啊来。好,然后我们现在咱们执行的这个结果,大家来看一下啊,大家看是不是以字段名为鉴,以字段的值为止。能看懂吧,Password gender a age email,还有username,好然后在这咱们把这个结果呢,复制过来,然后放在咱们的这个注释里面,这就是我们当前查询一条数据,然后转换为这个map集合之后的一个结果,好然后当然呢,它跟我们的实体类啊,它是有一些区别的,对吧?什么区别,刚才咱们也说了,实体类中的属性是固定的。
06:16
对吧?好,然后我们map集合中它没有固定的键,好然后所以说比如大家看我们现在如果我查询的是ID为四的数据,因为ID为四的数据呢,然后这里面咱们的年龄啊,性别啊,还有邮箱咱们都没有设置,对吧?好,然后这个时候大家来看咱们查询出来的结果啊,我现在我再来一个执行,大家看好,然后如果你的某个字段的值为难,那它会不会放在咱们的map集合里面呢?并不会,这里面只有谁ID username,然后还有一个是password,所以说这个大家一定要看好啊,然后他跟我们的。这个如果说我们当前他跟我们之前咱们查询出来的那个结果有什么区别,之前咱们查询出来的每一个字段都有值,所以说每一个字段是不是都会被放到咱们的map集合中,而如果我们当前咱们查询出来的结果里面某个字段的值为难,那这个字段是不会被放在map集合里面的,这个大家要看好啊。
07:16
行,OK,这是咱们的第几种情况,第四种情况查询一条数据为map集合。
我来说两句