温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,然后下面呢,那我们来看一下咱们的第三个特殊的circle,叫做动态设置表名,比如说我们现在呢,然后咱们的表名呢,它是不确定的,我们当前有两张表,表里面的字段是一样的,但是我们要查询数据的话,咱们查询的表是不一样的。比如说我有一个用户表,我有一个VIP表,咱们的用户表里面的数据跟咱们的VIP里面的这些字段呢,都是一样的,但是我们现在要查询,如果他是一个普通用户,那我们是不是要查询的是用户表,而如果我们要他是一个这个VIP的话,那咱们就要来查询的是咱们的VIP表,那这个时候咱们的表名呢,就需要动态的设置。好,然后这个时候大家来看一下它特殊到了哪个地方来,首先咱们在这呢,把咱们的map接口呢中的方法来写一下。然后咱们查询的呢,是一个list集合,然后泛型是user,咱们就叫做get user list OK,好,然后这里面咱们需要传过来一个string类型的,叫做table name,好,那既然咱们传输过来的是单个的字面量类型,那咱们建议大家也是加上一个a pair,就叫做table name OK,啊,行,然后在这咱们杠星星,然后呢,这个是啊,这个是动态设置表明设置表名,然后表名好,然后来查询咱们当前用户信息,OK啊好,下面大家看,咱们把这个复制过来,然后放到我们当前的映射文件中。
01:35
好,然后咱们把这个句呢来写一下,Select的ID要跟方法名一致,然后咱们的的type仍然是等于user,然后下面呢select箱,然后from表明,那大家注意,这个时候咱们的表明就需要动态设置了,那我们现在是不是应该要把我们的参数位置的table name给放到这个位置,那这个时候咱们应该怎么写呢?大家注意啊。来还是先是井号大括号,然后table name,大家看一下可不可以啊,然后我们现在咱们再来复制一个方法。
02:10
好,然后这个咱们叫做test get user list,然后我们要来调用的方法呀,然后是map.get user list,然后把咱们当前的表名T_user给它传过来,好,然后现在咱们就可以获取一个list集合,然后下面咱们来把它循环点for each,然后system.out。好,然后我们在这咱们来看一下这个效果啊,然后大家注意这个大家可能平常的用的不多对吧,然后但是呢,它是会出现问题的,为什么会出现问题呢?那是因为啊,我们当前的表名它是不能加单引号的,我们用井号打括号的时候,它最终被解析之后,是不是会为我们当前的表名加上一个单引号,但是大家看啊来。比如说我们现在咱们就拿着它来,咱们就拿着这个蛇口尾句,咱们现在把这个表名啊,给它加上一个单引号,单引号,然后T_U点来大家看啊,我现在来一个F9直行,大家看你看它对不对不对,所以说咱们的表名是一定不能加单引号的,这个大家注意,那所以说咱们遇到这种情况怎么办,对吧?然后咱们讲的,但咱们说的它特殊特殊到哪了,就是因为我们的井号大括号它是不适用的,所以说这个时候在我们动态设置表明的时候,我们也是只能来使用Dollar大括号的,这个大家注意啊。
03:38
好,下面我们在这咱们再来进行测试,然后大家看一下。好,大家看这个时候还有没有问题了,就没有问题了啊,好,所以大家一定要看好,当我们动态去设置表明的时候,然后我们当前咱们只能用Dollar大括号,不能用井号大括号,为什么?还是因为咱们井号大括号的原理问题,然后它用的就是占位符赋值,所以说它会自动加单引号,而在我们当前的SQL语句里面,咱们的表名能加单引号吗?不能加上就是错,OK吧,好,这个大家要注意啊。
我来说两句