00:00
好,那么前面呢,我们已经创建好了数据表,以及相应的扎宾,我们如何使用马贝来对数据库进行增删改查,我们先来说我们最简单的我们马贝蒂斯注解版的使用,好,我来写上一个map,我们来操作我们这个数据库,我们放在包下,我们现在呢就写一个department member。好,我们操作department表的,那么MY呢,我们只需要写一个interface来写一个接口就行了,而首先第一个呢,我们先要用一个注解叫at member,这个注解呢,来告诉我们这个马贝蒂斯,哎,指定这是。哎,这是一个操作数据库的member就行了,那么接下来呢,我们就来定义方法,比如我们来第一个我们来查出一个部门,我们就来查一个部门,就叫get de pt8id,那么按照ID来查一个部门,而这个ID呢,来配这ID传进来,我们可以把S语句直接写在方法上,使用select,哎,那这就是来查询,我就来写select芯,From from哪张表呢?那就from我们department这张表,Where,我们这个department里边的ID等于井号大括号来取出ID的值,那这就是它,那这是我们这个查询,包括呢,我们再来写一个删除,比如删除呢,我们返回多少行就行了,那我们就叫delete DEP。
01:38
Delete。DEPT8ID,那还是按照ID进行一个删除,那也传入一个ID,那么删除呢,那就是用delete注解,哎,这都是我们这个里边规定的这些注解,好,我来写一个delete from我们department这张表。
02:02
然后呢,Where,咱们这个ID等于我们来指定的这个ID,哎,这个ID呢,我们就在这,接下来呢,我们再来写一个插入来,我们也返回影响多少行,哎,Insert,哎,Insert dept,那么呢,直接给我们传入一个department对象就行了,而这个插入呢,我们自然就用insert这个。啊,这个注钱我们叫insert啊,Into into哪张表呢?那就into department这张表,而这张表呢,有两个字段,一个是ID,哎,这个department ID我们来看一下是不是自增的,哎,我们来设计表,哎,我们发现这个ID呢,它这写了一个自动递增,那我们ID就不用插入了,那我们只需要插入department name好,然后呢,Values,哎值呢,就是我们这个井号大括号,我们取出department对象里边的department name就行了。
03:04
哎,也就是说我们以前配置文件里边能写的SQL语句,我们用注解写在这,包括呢,再来写一个,哎,写一个我们这个啊,这是查询删除啊,添加我们再来写一个更新,更新呢,我们也返回in update de PT来更新一个数据,我们还是传入department对象更新呢,我们使用update,哎,这个注解,那我们的S语句还是一样来标上来update。哪张表呢?我们update department set设置它的啊,咱们这个部门名,部门名等于我们传进来的值,哎,井号大括号,我们取出这个dept对象里边的部门名,而且呢,Where。当我们我们这个部门ID呢,等于我们等于我们这个井号大括号,哎,等于我们这个对象里边的这个ID,我们来改我们指定ID的我们这个部门,好,这个增产改查,我们就是用注解的方式写上来了,那我们来写一个controller测一测。
04:12
Controller。我们就将de PT ctrl。这个control呢,我就来直接写一个risk control,哎,我们不返回页面,直接返回阶层数据,好,我们来先返回一个department,我们就叫get department。Department,好,那这个怎么返回呢?我们使用这个进行查询就行了,哎,我呢就不写service层了,我们直接把这个department member来注入进来。Auto,然后呢,我们来查department member.get啊,部门ID,这个ID呢,我们让它以请求参数的方式传过来。我们来查出这个部门,并返回好我们get map,好我们要处理的这个映射,那就是第1PT,然后呢,带上我们部门ID,我们用占位符的方式,好我们可以取出pass verb路径变量,好我们呢,以占位符的方式,我们来取出ID,然后查出这个内容,让它返回数据,包括呢,我们再来插入一条数据啊。
05:22
这个插入呢,我们还是返回department。Department,好,我们就叫insert,咱们这个第1P这个插入呢,来我们把所有的这个数据我们提交封装成对象,好这个get。Get,好,那么它就来发送de de PT请求,请求的时候呢,带上这几个参数,参数封装成我们这个department对象以后呢,我们就用department member啊,我们把这个对象insert我们来插入进来,插入我们传进来的department,那么插入完了以后呢,到底插的是哪个department,我们可以给他再来返回看一下。
06:08
好,我们呢,来测试一下我们这个能不能进行工作来启动一下应用。好,那先来访问,我们来查询,来写一个local host 8080dept杠一回撤,因为我们现在还没有一号部门,所以说这查出来一切都是空的,那没有,而我们接下来呢,来发送一个插入请求,我们先给它里边来插入一条数据,那么插入呢,发dept请求,带上我们这个部门的名字department name,哎,我们就叫A,我来回撤,来我们发现呢,现在返回的是一个AA,我们来数据表里边,我们来看刷新,哎,我们发现它确实插入进来了,也就是说如果现在想用MY贝斯,那而且用注解版,那就非常简单,只需要写一个map,用咱们这个map注解加进来就行了,这就是我们这个注解版的使用。
07:07
我们不需要做任何配置,因为这些配置呢,都是自动给我们配好的,我们可以来看一下,我们这一块呢,有一个来我们来搜索my auto conffi有这个自动配置的,这个自动配置呢,帮我们给容器中啊配好了circle session factor的,包括session factor要用各种属性都从这个properties里边获取,这个properties呢是来它有一个前缀,这个前缀呢就是马贝蒂斯,如果我们想要配置,我们还可以配置这前缀,但是呢,我们现在注解版我们什么都不用配置,但现在呢,有一个问题,我再来插入一个BB。我们现在看呢,返回的这个部门信息里边没有ID,我们想要获取到自层ID这个呢,我们可以直接在map里边,在insert上来给它设置一下,有一个options options里边呢,有一个属性,就跟我们以前写插一样,有一个叫use generated case是不是使用自动生成的主件,我们写一个true,包括呢,告诉人家我们这个哪个属性是封装主件的,我们department,我们用这个key property来告诉我们department对象里边的ID属性是来封装主线的,这样的话呢,我们传入的department当插入完成以后,主键又会重新封装进来,哎,我们这个controller呢,就会再次用到这个department,就会有主键可以来看一下。
08:40
是不是我们现在插入的这个东西就能获取到自增组件呢?好,我们来插入一个CC部门会车。你们稍等,哎,我们发现这个自尊组件三就有了,那我们再来查询一下,来查询一号部门,哎,我们查询也是没问题的,这就是我们使用注解版,在不做任何配置的情况下,哎,我们就写我们的这些map就行了,哎,没什么问题,但是呢,在这里边呢,我们再来考虑一个小问题。
09:11
什么问题呢?我们先把刚才的这个options设置来放在这。好,那其他的这些注解呢,都跟我们以前用的这些注解版一样,大家可以来参照马斯的官方文档,如果说现在是这样子的,我把这个department表我改一下,我呢不叫department name呢,我叫department-name这个呢,看起来是一个驼峰命名法的方式,好,我保存,然后呢,我们把这些do我们来都改一下。这个insert呢,这个列名我们得改正确了,好,我们先把这些列名改正确了。点正确了,好,我来重启一下应用,我们呢先不做插入,我们就直接来做一个查询测试一下。这个查询呢,我们来查询一号部门回车。
10:02
我们看到呢,Department name是封装不上的,那么因为我们扎的属性名叫department大写的name,而我们这个数据库里边叫department-name,如果以前有配置文件,我们可以开启驼峰命名法,那没有配置文件怎么做呢?哎,我们也可以来这么来做,我们看马贝斯的自动配置,在自动配置里边呢,给我们容器中来创建circle session factory的时候,哎,有一个configuration,哎,就是我们这个配置的相关配置,而这个相关的这个配置呢,这一块还有一个叫configuration customer,哎,我们说了,你看就是相同的模式,这custom呢,就是来帮我们来定制的,好,那我们想要改我们马斯的一些相关规则,那我给我的con里边,我也写一个马贝蒂斯con,我们不写配置文件的情况下,哎,我这么来写怎么写呢。
11:03
我们给容器中也加一个configuration configuration。卡托M加一个,这是一个接口。当然我们呢,就直接来一个con custom好,然后呢,这里边没有实现的方法,我们就在内部类里边难以实现好,我们custom方法我们给configuration,哎,那有一个叫set,有一个啊,Map under score to camera case,哎,这就是开启驼峰命名法映射规则,能传一个true就行了,那这个要能起作用,我们一定要把它return。而且呢,还要加在容器中,我们把它按它。B来加在容器中,当我们把这个配置类呢,At configuration来配置起来,哎,我们来告诉他这是一个confi。
12:00
个这是一个配置类,好那么接下来呢,我们就来看一下我们这个配置类能不能生效,哎,这个配置这个注解呢,它用的是全类名,由于我们这个马贝蒂斯的这个configuration,它的这个类名已经导进来了,好我们就来启动一下,看我们自定义的这个驼峰命名规则能不能起作用。好,我来回车。哎,我们发现这个数据就查出来了,也就是说我们可以使用这种方式来自定义马贝蒂斯的配置规则。哎,我们就叫自定义。My bet。的配置规则,诶只需要把它自动配置的那一部分源码,大概呢,瞅一瞅我们就知道该怎么做了,好,那CTRLV复制过来,也就是说给容器中,哎,只需要给容器中添加一个,添加一个叫configuration castle组件就行了,跟我们以前各种一样,好另外呢,我们再来扩展一下,如果我们member特别多的情况下,我们给每一个map上来标注这个map注解,如果不标这个map注解肯定是没用的。
13:24
我们来把这个目标我来助掉,我来启动我们这个马贝蒂斯肯定就没法工作了,我们这个map呢也找不到了,我们这个自动装配,我们看,诶现在呢,都直接报错了,我们这个自动装配都会有问题,有问题的原因是我们来自动装配这个map的时候,哎,有问题了,所以说呢,我们这个map注解不可少,但是呢,我们后来的map非常多,每一个类上都来加map,太麻烦了,怎么办呢?我们给spring boot的这个主配置上,或者呢,给我们这个马贝的这个配置上都行,我们来加上一个注解叫member sc member sky,就来扫描哪个包下的东西,我们来作为map的主包来这一块呢,们可以指定一个base packages,好,我们就来指定写它的这个value值也是一样的,Value呢,我们就来指定。com点硅谷点。
14:20
下的哪个包呢?这个map包,那这样的话呢,包下的所有接口那都会自动的,相当于添加了at member注解,好我来重新启动一下。看我们这个能不能使用呢。好,我们启动的时候呢,不会报错,然后呢,我们在这儿查询,我们来查询二号回车。啊也能查出来,所以呢,这就是我们用的这个注解叫。第二个可以使用批量扫描。使用。
15:00
使用咱们这个。批量扫描所有的map啊,批量扫描所有的map接口,这就是呢,我们使用注解版的马贝利斯,哎,非常简单,我们只需要写一个就行了,来,如果想自定义来写一个custom,如果想要批量扫描用。那么下一节课呢,我们再来说配置文件怎么用?
我来说两句