00:00
下边我们来看一下通用map里边的配置,我们首先呢,跟大家强调的就是我们配置哈,通用map配的时候是在哪配,就是在我们map sc configu这个里边配一个properties这个属性啊,然后在values标签,Value标签里边呢,去配各个配置项,这个配置项呢,都是一个名字等于一个值的形式,然后呀,每一个配置项呢,单独占一行,有多个的话呢,就是多行,你没有配的呢,就使用的是默认值。哎,这个大家要知道这个是在哪配哈,我们已经多次用过这这些配置了。然后呢,咱们就看一下这个具体的配置项啊,首先第一个呢,这个maps这个是干嘛用的呢?其实呢,通用map要求我们employee map也好,User map也好,他们继承的这个接口就是需要在这儿去配的,需要在maps里边里边去配的,那么为什么我们以前最初写的这个没有配呢?诶,这个东西没有配过,是因为这个东西本身就是人家的默认值,诶你可以这个东西就不用不用我们再去写了,诶你如果不是人家默认的这个,那就属于我们自定义的map接口,那么就需要呢,在这儿去给人家指定一下啊,就是这个maps这个配置项,这个identity呢,它是我们的主主数据库呢,主键生成方式。
01:23
诶,你看这个不同的数据库哈,他们是用不同的SQL语句呢,去把这个生成的生成的主键值呢,给我们查回来的,哎,呃,如果是这个配的时候呢,就是写identity后边等于一个数据库的名称,数据库的名称呢,在这儿已经都配好了啊呃,都在在在这儿人家都已经指定了,你别自己去瞎写,你就按照人家这个规定去写。然后呢,这个当然这个我们用MYSQL就不用了哈,MYSQL本身就是默认值,MYSQL就不用了,你如果用其他数据就库,那你就得去配一下了。这个order是干嘛呢?这个order不是我们说做排序的那个order by词句哈,跟不是那个哈,跟那个没有关系,它这个呢是这样的,我们想获取数据库自自动生成的组件的时候呢,是需要有相应的搜狗语句的,这个搜狗语句呢,是在我们insert语句前面执行还是后边执行,就是靠这个order来配置的。
02:21
啊呃,那么我们对于大部分数据库呢,都是要配成这个after啊,在你ins色之后呢,再去获取啊,因为大部分数据库呢,都是我们插入了这条记录才会去生成这个主键的值,但是呢,像Oracle哈这种比较特殊的,它是before啊,它是在你隐测之前就得到这个主键的值啊,这是这个order哈,这个我们说一下,我们通常用MYSQ的话,这还是就使用它的默认值。我们这个平常这个也不用去配哈。Catalog和schema呢,他们都是指定那个数据库的名字,你看呢,对于我们这儿来说呢,就是这样的,咱们这个数据库呢,叫common map,在这个里边呢,比如说我们去找这个table user,诶那就是说数据库名点表明这样去找,那么有的时候呢,是有的,有的开发团队哈,或者说有的人呢,他习惯于这样,通常来说呢,我们写这个表名就行了,有的时候也可能你需要访问多个数据源,访问多个不同的数据库,那么你不同数据库下边呢,会有相同的表,那你就必须得用不同的数据库的名字呢,去给它区分开,这个时候呢,就是可以用catalog或者是STEM,诶然后呢,他说catalog呢,优先级高于STEM。
03:37
这个note empty呢,就是是否判断这个空字符串哈,这个空字符串呢,是否是配置,是否是当成这个空,哎,嗯,那如果呃如果是设置为处的话,你就是空字符串,我也认为呢,你是这个呃空的就和闹呢,同等的去对待,和闹同等的去对待啊在这个selective相关的方法里面,因为我们说selective方法,你要是发现为闹的值,或者说发现为空的值,我们就把它设置成这个。
04:11
呃,就不会加入到SQL语句里边对吧?啊,那么这个时候呢,就是去决定你空字串呢是不是空啊就是这个意思啊,这个style呢,是实体和表转换时的默认规则,哎,这个规则大家可以自己看一看啊,咱们其实平常就是用默认的就可以了。Enable method not,就是说你看这个在set方法上面呢,可不可以去加这样的注解啊,这个咱们一般其实也用不上,咱们一般就在字段上面加就好了。Use simple type,默认就是true这个意思就是说的,嗯,判断试体类型属性是否为表字段时啊,校验字段是否为简单类型,就是我们说了默认哈,通用map简单类型呢,是会忽略的啊,它不认为是表字段。什么叫表字段呢?就是我们Java里边的字段在数据库表里边也有,就可以叫做表字段,呃,默认情况下呢,我们要是呃简单类型啊,就会被当做表字段。
05:12
对,然后呢,在这儿你看这不是有这个注意吗?基本数据类型哈,由于存在默认值,这里不会作为简单类型对待啊,默认情况下呢,这些字段不会和表字段进行这个映射啊,哎,所以在这呢,它设置是设置的是出下边有一项呢,叫use prime,呃。Primitive type啊,这个就是说基本基本数据类型,就是说呢,我们前面这个不是有约束吗?你基本数据类型是不会不会作为表字段的,那不作为表字段,我又假如说我有一些遗留的老的项目,它需要用到基本数据类型,怎么办呢?就把这个呢设置为处啊,但是这个我们说这是一种这个兼容老的项目的一种不得已的办法,那么尽量呢,还是还是不要使用基本数据类型哈,如果我们能够去决定的话,就还是不要使用基本数据类型,不要用基本数据类型啊,你比如说就是这些,比如说这个ID啦,Age啦,哎,这个salary啦,这些地方啊,我们尽可能不要用基本数据类型。
06:18
然后呢,Simple types,那就是说是哪些属于简单类型,哪些属于简单类型啊,就是大家这些概念哈,我们前面给大家区分过哈,基本数据类型,引用类型,简单类型,复杂类型,这些概念要区分清楚哈,现在他说是哪些是属于简单类型,诶它默认呢,是在这个类里边呢,有相关的配置,你如果说想做一些增加的话,你可以可以去用这个东西呢,去额外去配一下,你看它在这儿呢,也是使用猪呃,枚枚举哈,去举的这个例子,这个innu as simple type,这个咱们已经说过了是吧?如果配置这个项为true,那么枚举类型呢,也会作为表字段来处理啊,或者说呃,Innu as simple,那就把枚举类型的也当做简单类型来处理,这个rap keyword,这个是干嘛用的呢?我们给大家举这么个例子哈。
07:11
比如说呢,我们select形from有一个表叫order,后边有什么条件,那么这个order呢,其实是我们order by这个词句里边的一个关键词,你如果思狗L语句,就像我们现在这么写哈,这个是会报错的啊,这个so狗语句语法上是有问题的,你用了人家关键词了,所以说在这儿呢,这个SQL语句呢,我们应该怎么写呢?诶你得用这个符号哈,用这个就是我们应该是叫重音符号哈。把这个order呢,给它括起来啊,让它呢就不作为呃,不把它识别为关键词,就把它当做普通的字符串,作为SQ语句的一部分啊,当做普通SQ串,当做普通字符串来处理啊,所以这个事儿呢,也挺重要,我们命名的时候呢,尽可能避开我们呃买就是搜QL里边的关键词啊,但是有的时候呢,也可能就忘了啊,也可能就忘了,那么这个时候呢,这个rap keyword呢,就是可以去指定啊,用什么符号去把这个关键词呢,给它包起来,就是我们刚才说的这个。
08:17
这个两边的这个符号啊,这个rap keyword就是指定这个东西的,这个东西呢,不同数据库还有区别,你看他告诉你说,如果circle server哈,它是方括号。哎,你要是买SQ的话呢,我们是这个符号啊,大部分都是我们这个符号,那么这个怎么去配呢?就是拿这个符号呢,放在两边这个中间呢,写上这样一个站位符啊,将来呢,他就要拿我们我们的值呢去进行这个替换诶。哎,他这还告诉你说使用这个配置以后呢,类似这样的,呃,这样的字段哈,就不需要通过column来指定这个别名了。
09:01
因为它它给你包装了以后呢,它包装了以后生成的那个值去作为这个字字段的背面下一项check example class哈,这个是啥意思呢?就是说呢,我们在指定在创建example对象的时候,需要指定一个class,然后呢,我们在我们具体的这个map呢,它也会对应一个class,它两个万一要是不一样啊就会出问题,你比如说呢,在这儿它用C呢,创建了一个example,然后呢,他用的是country map,这个平常如果我们,嗯怎么说呢,正常情况下它应该报错,因为它字段它也不匹配是吧,表它也不匹配,但是怕什么呢?就是说就就怕呢,他这个问题呢没出来,就怕你正好这个两个表哈,字段是一样的,这种几率不大,但是呢,一旦要是发生的话呢,就有可能我们就掩盖了这个错误了啊,你这个时候你操作的是错的表啊,所以这个问题吧。
10:01
啊,还挺严重呃,你要是想考虑到这个小概率的这个问题哈,这个这这个确实是需要去诶需要去留意一下,那么如果说把这一项呢,设置为这个处的话,诶通用map呢,就给我们去做这个验证啊,看看example里边的class和你调的map的那个class呢,是不是一致啊,就是干这个用的这个东西默认是false哈,你的默认false默认它是不做这个检查的,诶你考虑你的实际情况,如果说你的表和表之间哈,存在这种表明,表明当然肯定不一致了哈,但表表里边的这个字段两个表字段一样啊,那你就得就得把这个给它设置上啊,哎,就是给自己这个写开发呢,呃,多上一层保险。Shift delete就是安全删除啊,那么就是在执行删除的时候呢,必须有条件,诶大家不知道记不记得啊,我们写那个delete那个方法的时候,呃,如果没有查询条件,他就会把数据全删掉。
11:06
嗯,Delete,我们找一下哈。哎,这个如果说我们这儿没有指定条件,它会把数据呢全部都删掉,那么如果你设置了shift delete等于处的话,哎,他如果没有查询条件呢,他会给你抛这个异常啊,这个时候是也是增加这个安全性,呃,默认。呃,默认它肯定不是出,因为我们之前之前这个验证过是吧,它这个不管用,你你得这个,如果说你有这个顾虑的话呢,我们就可以设置乘数。然后呢,在这儿呢,这个use Java type哈,它是针对这样一种特殊情况,就是说呢,我们把这个主键字段呢,给它提取到一个父类里边的时候。啊,我们如何识别这个,呃,副类里边的这个泛型啊,这个如果配了这个柚子Java type呢,我们就能够很好很好的去识别这个泛型,诶这个也是看大家的这个开发的实际情况啊,看你是不是真的需要把实体类里边这个主件这部分呢给提取到副类里面。
我来说两句