00:00
好,那我们刚才呢,咱们已经把咱们的表到我们的实体类,然后到我们的这一个,呃,Map接口呢,咱们就已经创建完了,然后下面呢,我们就需要来创建咱们的映射文件了,对吧?然后大家来看,然后呢,咱们创建完映射文件,大家也就知道为什么咱们要来创建map接口了,然后咱们不需要来创建它的实现类了啊来大家看好my be的映射文件,它相关的概念呢,就是咱们的OM。对吧,这个之前我们在介绍买be体的特性的时候就说过啊,OM叫对象关系映射,对象呢指的是Java中的实体类,对象关系指的是咱们的关系型数据库,而映射指的是两者之间的关系,那大家说他们有什么关系啊?对吧?比如说咱们的类是不是跟我们的表之间是相对应的,而咱们的属性跟我们当前的字段或者说列是相对应的,而咱们的对象是不是跟我们的记录其实也就是一行数据相对应的,对不对?这个其实我们最早咱们在学习my circle的时候,咱们就说过这个问题,大家是先学习了Java,再学习了my circle,对吧?如果你要问一个表该怎么创建,其实简单呀,我们的实体类该怎么创建,咱们的表就怎么创建。我们的实体类是用来描述一个事物的,那咱们的表也是用来描述一个事物的,而组成咱们实体类的各个信息咱们叫做属性,而来组成咱们这个表的各个信息,咱们叫做字段,对吧?然后呢,我们的一个类的实例化对象来表示的是一个具体的一个事物,而我们当前数据库中表中的一条记录,或者说一行数据来表示的也是一个具体的事物。
01:49
所以说大家要注意它们两个之间的对应关系,类,实体类和我们的表之间相对应,而属性和我们的字段之间相对应,而咱们的对象和我们的一条记录之间是相对应的。好,那我们的map,咱们的映射文件呢?我们当前咱们map接口所对应的映射文件,咱们该如何去创建啊,首先大家注意它的名字。
02:14
尽量和我们的map接口保持一致。大家注意啊,然后尽量和我们当前咱们的map接口,Map接口的名字保持一致,那只不过咱们的map接口的后缀是点Java,而咱们的这个映射文件的后缀呢,是点叉ML,这个大家注意啊,没有问题,所以说呢,那我们现在咱们同样是在我们的resource下面来创建咱们的映射文件。好,因为咱们的映射文件呢,以后可能会有多个,因为呢,大家也可以看到,我刚才说了,要它和咱们的map接口的名字保持一致,而我们的map接口相当于咱们的DAO,而我们的dau咱们说过一张表的操作对应的是一个DAO,那换句话来说,我们现在咱们的一张表的操作对应的就是一个map接口,所以说咱们以后有几张表可能对应的就有几个map接口和咱们的map映射文件,所以说呢,建议大家呀,在这咱们可以这样去写啊,比如说咱们创建个目录,咱们就叫做maps。
03:20
对吧,这里面专门来存放咱们的映射文件,点击右键,然后去new一个什么呢?大家来看啊,咱们来new一个file。然后这个映射文件的名字呀。最好是跟咱们的map接口的名字保持一致,那大家如果不一致,你说你叫啥呢?对不对,对吧?好,然后user APP一样,User map点查一名,好OK就完事了,那这里面这个配置文件中咱们需要来写什么呢?大家看好啊,咱们再来找到咱们的官方手册,官方文档,咱们往下找,大家来看啊来咱们找到这儿,大家注意,这个就是我们当前咱们的一个映射文件,好然后咱们把这里面的内容呢,然后给复制一下,然后放到我们当前咱们的配置文件中,大家来看啊,一样的第一行是声明,然后咱们的这个是我们当前配置文件中的一个什么是咱们配置文件中的一个约束,然后咱们说过dog tab后边的这个值必定是咱们配置文件中的跟标签,对不对,大家来看啊,叫map标签,然后这里面的内容呢,咱们可以先把它给干掉,对吧。
04:33
然后大家可以自己来看一下,一个间括号之后,大家看这是不是select标签呢?这是不是insert,这是delete,这是update,这不是增删改查,那大家说你说这些标签里面写的是啥?那不就是我们增删改查的S语句对不对?哎,这个大家要注意啊,好,然后呢,我们的map标签里面呢,在这有一个叫做name space对吧?然后它的值呢,咱们看起来是不是应该是跟谁很像啊,应该是跟我们当前一个类,然后一个类的全类名很像,而且这个类叫什么什么map。
05:15
那大家说咱们的map接口是不是就叫什么什么map呀?哎,所以说大家看好,你看他给我们的,他给我们所提供的案例中,其实就跟我们说明了我们当前咱们的这一个各个信息该如何去使用啊好,那我们现在呢,大家会发现map接口和我们的映射文件的名字是一样的,对吧?然后我们现在大家说我们要干什么,它不就相当于咱们原来的dau吗?那如果我现在我要去调用dau中的方法,咱们是不是要来执行一个circle语句,并且将结果返回给DAO,那所以说比如大家来看,我现在来写个杠星型回车,我们现在要来添加咱们的用户信息,那所以说我在这儿是不是应该就有一个抽象方法呀,它的返回值增删改的返回值是固定的,是受影响的行数。
06:11
大家说是不是,所以说它的返回值就是int,然后我们的方法名咱们就叫做insert user括号,那比如说我们现在,这就是我们现在要实现的功能,是一个添加用户信息的功能。好,然后我们最终咱们执行的结果就是我们在调用这个方法的时候,一定要让他去执行一个circle口,而我们的circle语句是写在哪的映射文件中的,对不对?那所以说我们现在咱们就可以把它们两个之间来创建一个映射关系,怎么来创建呢?大家看好了,咱们需要来保持两个一致。咱们需要来保证两个一致,大家注意啊,首先第一个一致大家看好,我在这里面给大家来写一下杠星型回车,然后咱们得be,咱们得买be,对吧?然后面向咱们的接口编程对不对?然后的啊,面向接口编程的两个一致,哪两个一致呢?首先大家都知道我们最终的结果,你调用map接口中的方法就是来执行这个circle的,对吧?所以说咱们要先通过我们当前咱们的map接口去对应我们当前的映射文件,所以说呢,在我们的映射文件中,Map标签里面是不是会有一个name space,叫做命名空间,所以说我们现在要来保证我们的name space的值要跟咱们map接口的全类名保持一致。
07:46
好,这个大家注意啊,好,然后下面呢,咱们来写一下第一个一致,就是咱们的map接口,咱们的映射文件的name space。然后要和map接口的全类名保持一致,好,这是第一个一致,那我们现在咱们先来写一下啊,好,然后大家来看,那在这我们要来写的不就是user map user map的全类名嘛,对不对?com.at硅谷,然后点MY.map.user map就完事了。
08:25
好,然后这个时候当我们来调用map接口中的方法,它就可以根据map接口的全类名去找到咱们的映射文件,那我们现在呢,咱们要做的是不是应该是调用方法的时候,咱们是不是要根据方法去找到这个SQL语句,那所以说我们现在咱们就可以怎么做,大家看好啊,咱们就可以在这来写一个circle。对吧,咱们刚才看到的有四个标签,分别是增删改查,那所以说我们现在要实现的不是添加用户信息嘛,那所以咱们要用到的标签是不是就叫做insert,然后大家会发现这个insert标签里面是不是有一个ID,那这个ID表示的是不是应该是我们SQL语句的唯一标识,大家说是不是?
09:13
我们的一个映射文件可以写一个circle口,我也可以写十个呀,我也可以写100个呀,那我怎么让我当前我所调用的方法去对应我们当前的这个S口语句呢?很简单,我们只要来保证第二个一致,什么一致呢?大家看好,然后咱们映射文件中咱们的circle语句的ID,然后要和map接口中对吧的方法名一致,好,这个大家注意。那这个时候每当我们去调用这个方法,它是不是就可以根据咱们的方法名,然后去匹配咱们map映射文件中的一个SQL语句啊,所以说大家来看,我把这个方法复制一下,然后放到我们当前咱们的映射文件中,放在注释中,然后咱们现在只需要保证第二个一致,也就是方法名要跟SQ去的ID一致,那这个时候我们去调用map接口中的方法,是不是就可以根据?
10:19
Map接口的全类名去匹配到映射文件,然后再根据我们所调用的方法名来匹配到咱们的SQL语句。好,这个时候大家注意。他们两个的映射关系,咱们就已经创建完了,好。那我们下面只需要把这个circle句来写一下就行啊,Insert into表明提下划线user,然后Y64,然后括号,然后第一个自动递增是nul,然后第二个用户名咱们就叫A的me,然后第三个是密码,咱们就写个123456,再往下年龄23,然后性别男,然后最后一个是邮箱,然后是12345,艾特QQ。
11:11
QQ,然后点com OK啊大家注意这个就是我们的SQL尾句,那我们现在呢,咱们的映射文件呢,也已经创建完了,大家注意啊,映射文件和我们的核心配置文件所使用的这一个DTD文件是不一样的啊,记好这个地方,然后咱们来写的是my bet杠三杠map,然后这个核心配置文件中叫my be杠三杠con,所以说我们当前咱们的DTD文件不同,那我们当前在文件中所写的标签也是不一样的。好,那这个大家注意,这个是我们买be里面最重要的一个环节,也是大家初学阶段,你只要能把这两个一致,然后给想明白了,然后我们当前咱们的my be基本上就算是入门了,这个大家注意,其实很简单的,对吧,My be的。
12:05
Myab可以面向接口编程,我们现在要来保证我们当前的map接口,它的全类名要和咱们的映射文件的命名空间一致,Name space一致,然后呢,要来保证我们当前咱们的这个方法名和我们当前咱们SQ句的ID一致,那这个时候我们来调用接口中的方法,是不是可以根据接口来找到映射文件,然后是不是可以来通过方法名去找到我们当前所对应的circle?没问题吧,好,这个大家注意啊,好,那所以说我们以后咱们的一个map,然后对应了我们的一个映射文件,然后对应了我们所操作的一张表,然后对应了我们当前的一个实体类对象,所以说大家注意,我们在my be里面,大家一定要想好他们之间的对应关系,什么对应关系呢?大家注意啊,就是咱们的一个表啊。
13:03
一个表对吧,然后和我们的一个实体类,然后和我们当前咱们的map接口,和我们的一个映射文件,好,这个大家注意啊,好,还有最后一个地方,我们现在映射文件创建完了,那我们是不是需要在咱们的核心配置文件中来引入映射文件对不对?好,大家来看啊,来,那因为我们当前咱们是把映射文件给写在了哪啊,写在了我们的resource下面,而我们如果写在Java下面的话,大家可以包的方式来访问,但是咱们的resource下面是不是应该是相当于一个普通的目录,所以说我们要想来访问咱们的这个user map的叉L的话,那我们应该是这样去写,先写maps,然后再写我们当前咱们的配置文件的名字就可以啊。好,这个大家注意啊,然后在这大家就不能用点了啊,不能用点了,因为我们现在resource来说的是我们当前引入的资源,然后呢,我们的resource下面它不叫包,那所以说在这咱们就要以路径的方式来进行引入,OK吧,好啊。
14:19
行,那这个是我们买中的映射文件啊。
我来说两句