00:00
我们接下来学习我们第四章马贝蒂斯circle映射文件这一章的内容,那么这个circle映射文件的重要地位,哎,我也就不说了,那在写hello word的时候我们都看到了。所有的SQL语句都是在这个映射文件里边编写的,就说呢,这是我们马贝蒂斯的魅力所在,哎,对应的内容也在官方文档的member叉麦章节,哎,他就说了,哎,什么SQ映射文件是我们马背丽斯,哎真正的魅力,哎什么魔法之源啊,马贝蒂斯的至尊奥义,所以说呢,这一块的所有内容啊,我们都得完全掌握,那么呢,把它达到熟练应用的这个效果,能写的标签呢,文档里边也都有。来,包括我们给大家看的这个PPT,我们当然这个标签讲到的时候再去说,某个标签讲到的时候再去说,我们先把我们这个增删改查,诶我们来看啊,有完整的增删改查的支持,我们先把增删改查都做出来,再来探索其他的标签,哎,这里边还有一个已废弃的标签,那么呢,在这块我就不探索它。
01:19
好,我们先做出增删改查。我来复制一个新的工程。啊,贝零三,我在这里边呢,我们把hello word写全啊,把增删改查给它全部写出来。好。配置文件走。配置文件,这个配置文件里边呢,只有一个咱们这个查询方法。哎,因为它跟咱们这个接口进行了绑定,我们这个employee member接口,那么呢,我们只有一个查询方法,接下来我们为这个接口规定上更多的方法。
02:06
增善改都定义出来,好,第一个添加一个员工,我们呢传入一对象啊。好,包括我们这个。修改一个员工啊,因为要修改很多字段,我们也直接传入一个employee对象。好,包括我们再来定义上删除一个员工。哎,我们是按照ID删好,我来传入一个ID。好,这个增删改方法我们都定义了,然后我们在circle。映射文件中找到蛇口映射文件。在这。我们为这几个方法添加定义。好,第一个是我们。员工添加方法。
03:02
那么这个员工添加方法,我们查询用了select al斜杠加提示,我们来看啊,有我们这个添加insert标签,哎,拿它做添加ID也是方法名。而我们传入了一个employee类型的参数,可以使用type来指定参数类型。参数类型就是它。然而这个东西type。哎,大家也看到了,我们可以省略的,可以省略,因为我们查询的时候都没写参数类型吧,哎,所以说呢,这个是可以省略的,如果要写,你就在这儿指定权利名或者它的别名,好,我们把插入方法定义出来。Insert。Insert into,哎,我们t employee这张表,哎。插入的字段呢,我们来看一下我们数据库里边,因为ID是自增的,所以说ID字段我们不用管,我们要插入的字段,诶,就是我们last name email中的这些。
04:10
好,我们来写一下。我要插入last name以及。一的,那么呢,接下来它的取值。Values。哎,它的值是什么呢。值我们都是m employ这个对象里边是不是属性的值啊,所以说呢,我们接下来怎么写,还是井号大括号直接写我们这个对象里边属性名,它就是代表取出这个对象中。这个属性对应的值。好,我们的email也是取出对象里边email的属性对应的值。包括我们要插入的真的的值,也是取出对象里边真的属性对应的值,而且大家注意我们这一块,哎,SQL语句不写分号啊好,这块做好以后呢,我们这个添加方法就做完了,接下来我们这个。
05:08
更新。更新。好,更新我们来看一下。更新,那么呢,自然往下看,我们有一个update标签,拿它来做更新,好ID还是方法名,我这个参数类型我就不写了,也是没问题的。好,我们把更新的circle语句我们来写上update,那要更新TBL-employee这张表,然后呢,我们设置它的一些字段是set。Set它哪些字段呢?来设置表里面的last name等于我们传过来的值,Email也等于我们传过来的值,真的也是我们传过来的值,条件就是ID等于我们传过来的值。啊拉name,哎,等于我们传进来的值怎么取呀?啊,还是之前的方案,井号大括号,直接取出我们对象里边某一个属性,哎,我们要取last name对应的值啊,这是第一个字段,我们还要更新email啊,也是井号大括号,哎,我们数据库的email列,它的对应的值是我们取出Java b email的值好,还有数据库真的这一列的值是井号大括号,你取出扎B真的的值好。
06:28
设置它们这些值等于这个,那条件呢,我们这个V,那V条件就是ID等于我们传进来的啊ID值好,这是我们这个。更新方法,更新方法写完以后呢,我们接下来再来写一个删除方法。删除,按照ID删除员工。好,我们来写,删除。Delete。
07:01
咱们这个标签的ID就是方法名,参数类型不用写好,我们是delete。Delete from t BL到employee这张表。喂。条件呢,就是我们数据库的ID等于我们带来的ID值。好,我们按照ID员工好这个增删改我们在这儿定义好了。接下来我们进行一个测。好,打开我们这个测试类。好,我们在这里边进行测试。World。好,我们在这里边进行测试,哎,我们这个呢,就是来测试增删改的。好,还是第一步获取session。来获取它。那么接下来第二步,从咱们这个circle session factor中,哎,Open session,好,Open session,只不过现在大家注意一下啊,那这个open session呢,我们之前用的是这个方法,下面还有一个open session,它会带一个波论类型的,是否自动提交,如果我们是用上边不带参数的,那我们获取到的这个C。
08:25
是不提,不自动提交的。注意一下,获取到的不会自动提交数据。所以说呢,我们如果用这个session,那我们就得手动提交好,我们就先用它。好,我们从这个获取过来的这个session里边get member。获取到我们这个点。Plus,好,拿到这个接口,我们就进行增删改查测试。
09:00
Finally。最终呢,我们把这个session也给它关掉。而我们都知道,这个增删改查只要进行完了,我们手动一定要提交commit。这块注意啊。手动提交。啊,这样的话呢,我们才能生效。好,拿到这个,我们来测试测试第一个member。点我们这个添加员工,好,员工添加,那么员工添加我们就直接new一个employee对象,那为了我们这个new起来方便,我们给employee添加一个有参构造器。有参构造器,好,这是一个无参的,因为要添加有参,大家一定要写上无参,否则好多空框架。就不能工作了,我们很多框架的反射之源就是这个无参构造器,好,那么呢,接下来有参ID,我们不用管,人家是自增的last name,比如呢,我们保存一个瑞,好,那么呢,是咱们这个杰瑞啊。
10:10
At硅谷点。com真的一男孩子。哎哎哎哎,好,我们来。哎,我们这个构造器,哦,对对对,我们这个一呢是一个字符串啊好。走,然后呢,把它呃,添加,添加完以后我们提交测试。好,测试成功,影响一行来到数据库。刷新,哎,杰瑞就进来了,好,那么呢,我们这个添加没问题,接下来我们再来测试一下修改。好,我们再来测试一下修改。
11:01
修改我们这个点,Update,我们要更新员工,而更新的这个员工呢?好,我们还是把之前的拿来。我要把一号员工也改成咱们这个杰瑞这些信息,我们现在一号员工呢,是Tom,好,我们要改那么ID我们就写一号员工,哎,他的其他信息就在这。啊,它是一个女杰瑞,好,我们来测试。走。刷新好,我们一号,哎,女杰瑞也进来了,我们这个修改也没问题,接下来来测试删除。测试咱们这个删除,删除呢,我们只需要调用这个member的member。Delete,我们要按照ID删除,我就把二号员工我们删除掉。
12:07
走诶也是没问题的,影响一行刷新啊,二号就没了,咱们这个增删改那么就是来这么用就行。只不过咱们大家得注意一下,也就说呢,一定要把这个数据自己先提交了,而且呢,还有一些问题,我们习惯于添加修改或删除成功以后,比如给我返回一个出货false之类的,行不行呢?也是可以的。我们马蒂斯允许我们增删改,直接返回这些,哎,来说一下马蒂斯。允许咱们这个增删改,直接定义咱们以下返回值。以下类型的返回值。他呢?它呢,可以自动的为我们封装成功,比如是应聘者。
13:04
或者浪。或者不论,哎这三种类型,以及它包装类或者基本类都行,你这样一写以后,因为我们增删改返回的是影响多少行,如果你写不论,那么呢,只要超零行以上,那么呢就会返回处,那么呢零行了,那就返回false,包括呢,它把影响多少行也可以给你封装成配long都行,你只需要直接在接口返回方法上来定义就行,比如我们这个添加让它返回long,而无需在我们map中写返回值类型,你在这也写不了,我们来可以看,诶,这根本就没有result type,像我们查询一样,还有什么result type,这根本就没有。所以说呢,我们要想返有返回值,就这么写就行了,来,我们来就测试上一个。就来测试删除这个删除的话呢,哎,我们来删二号员工。
14:01
这个删除我们看没定义,那就更新吧,我给更新定义了。把更新打开。那么呢,更新就会有个返回值。打印一下这个返回值。好,要更新一号员工更新的信息是杰瑞这一串。我们把它又跟成套。好,我们来更新,因为我们一号员工存在,所以说它更新是成功的,哎,他这一块影响了一行,它就返回为处没问题,而如果我们要更新二号员工,二号员工不存在,那么呢,它就会返回为false,比如说呢,我们直接哎来定义它的返回值类型就够了啊,贝蒂斯可以自动封装,这是我们做这删改的时候要注意的,第一个就是返回值,第二个啊,我们需要。啊,我们需要手动。手动咱们给他提交数据。
15:04
啊。
我来说两句