00:00
来,咱们看一下这个异常的信息,这里边呢,我们看他cos这一行哈,说明我们这个异常出现的原因,然后这里边告诉我们呀,他说common map这个数据库里边没有employee这个表啊,Doesn't exist,我们上数据库里边看一看呢,也确实是我们这个表上它的名字不叫employee啊,它是这个table e。那他为什么要去找这个employee这个表呢?啊,要回答这个问题啊,我们就得去看一下我们的实体类,我们这个实体类的名字呢,叫employee,然后呢,他要找的这个找的这个表的名字呢,也叫employee,唯一有一点区别呢,就是他把类名首字母的小写哈,作为这个要找的表明了。哎,这个呢,从这我们也能够看出来哈,这就是通用map呢,建立类和表之间映射关系的这样一个默认的规则,呃,你默认没有进行相关的指定的话,他就把类名首字母的小写啊来作为我们这个数据库表的表明。
01:01
那很显然呢,我们现在数据库表里边儿并没有一个叫employee这样的一个表。啊,那怎么办呀,我们怎么去解决这个问题呢?啊,我们通过刚才的分析哈,我们确实是知道他为什么会出现这个问题了,那咋解决呢?可能我们直接的一个办法呢,就是我们,那我们就把这个数据库表哈,给他改个名呗,把数据库表的这个名字给他改成这个他要的那个,嗯,这固然是可以解决哈,但是我们想哈,我们表明为什么要叫这么个名字,是因为呢,前面啊,前半部分下划线,前面这个它是我们的一个表前缀,而数据库表呢,我们在创建的时候啊,是最好要加上表前缀的,那那如果改成他想要的这种哈,它就没有表前缀了,这个就不符合我们数据库表命名的规范了。哎,所以说啊,我们还不能从数据库表这边下手,我们还得从实体类这边去解决,去想办法,嗯,那你说我,呃,把实体类这边呢,改成跟表面那边一致呢,这个也不行是吧,这个类的名字呢,带一个table,这像什么话是吧?哎,所以说这个通用me呢,其实也考虑到这个问题了,它可以让我们去加一个table注解来解决这个问题。
02:17
Table就是表嘛,在这个里边呢,有一个内幕属性,在内幕属性里边呢,把你这个表的名字呀给我拿过来啊,正好我们这儿有这个建表的语句哈,咱们就直接拿这个复制过来,这意思就很明显了,我们这个实体类employee,这个实体类在数据库里边啊,对应的是我们这个表,诶这个我们加上table这个注解以后,这个关系就非常非常的明确了啊,这个通用map呢就知道啊,针对这个实体类的操作要去找这个表,就不会再出刚才这个问题了,我们重新跑一下啊。看看我们这个是不是正确。诶,好嘞,这unit这边是绿条是吧,我们要查询的这个employee对象呢,也都这个查出来了,好嘞,然后呢,下边我们就看哈,嗯,这其实是引出了我们要使用的第一个注解啊,我们在通用map这哈,一方面是有一系列的方法,另外一方面呢,还有很多这个注解啊,需要我们去熟悉,这就是我们要说的第一个注解,就是我们table波注解。
03:22
哎,我们这笔记里边记下啊,那这个注解啊,它的作用是什么呢?去建立我们实体类和数据库之间的这个对应关系,这个时候呢,其实我们有这个默认规则,默认规则呢,是把实体类类名首字母小写啊作为这个表明。
04:00
哎,比如说呢,我们这个employee这个类啊,它呢去对应我们的employee这个表,但是往往呢,我们实际开发的时候啊,不一定能够有这么严格的对应关系啊,很可能它是不一致的,不一致的时候呢,就可以使用我们table注解啊来建立这个关联关系啊,建立这个对应关系,那么我们下边呢,哎,通过截图的方式呢,我们把这个用法呢,放到笔记里边。啊,在这儿的话,大家要注意,我们是使用的是这个内幕属性。十几类,我们就没有必要都把它截图,没有必要都截过去哈,我们这个看这一部分就行了,哎,就是这个在我们table注解的哎,Name属性中去指定。Name属性当中啊,去指定。哎,我们目标数据库的反应啊,这是我们刚才呢,其实就是要给大家去说这个table注解啊这个问题。
我来说两句