00:01
刚才呢,我们这个就生成完了这些内容,哎。极大的减轻了我们这个代码量,这些呢,人家都帮我们自动生成。我们就来测试一下,但是大家也看到了,这个自动生成的呢,都是一些基本的增删改查。像那些复杂的增删检查,我们还得自己写。所以说呢,我们先来把这个简单测试一下。好。然后呢,我们来测试一下我们这个简单版的。还是第一步,Get circle。先拿到ciation function,然后呢,拿到S对象。Open。我们来open session关闭。Close。Close。
01:01
好,我们在这里边呢,拿到member employee member,我们进行一个简单测试,Get member。那就来测试查询所有的这个员工。家有一个方法叫O。好,我们就来便利查询到的所有内容。输出我们每一个员工。好,我们来测试,看他成功不成功走。诶,打印出来了14条记录。但是呢,这个我们生成出来的,没有图斯论方法,大家也可以填上,那我们呢。等于一个get ID吧,我就用他的这个员工ID。我们来看每一个信息。哎,14条这些ID也都打印出来了,哎到16号,哎,跟我们数据库里边一模一样啊。
02:01
所以说呢,这个东西就是能用的那个其他的呃,删除修改添加之类的,大家也可以继续来做。那我们来看啊,现在生成的这个也都是一些简单版的这个。而我们查询经常会有带条件哎查询。我们之前用动态标签、if标签来做过带条件的查询。那这些查询呢?其实我们代码生成器也支持生成这些复杂查询。我们之前呢,用了一个叫target。目标的咱们这个运行环境。哎,目标目标环境MY3SIMPLE,它的意思就是生成。生成咱们这个简单版的。C rud,哎,咱们这个增删改查。而我们接下来呢,我们就能用。我们这个。来我们来到咱们这个全局配置里边。在我们这个contest标签,诶点过来,然后呢,啊。
03:04
Target runtime属性里边我们用的是这个属性。啊,这两个我们就不看了。那么呢,我们可以选中马布里斯三,它呢,可以可以生成我们这个带动态VR标签的一些复杂查询。把它拿过来。改成它就说呢,如果改成这个,这就是豪华套餐是吧,豪华。豪华版的,来看一下有多豪华啊。我们来把这个改一下,我们重新生成,但是这一块提示大家重新生成呢,都建议大家把这些以前生成的东西都删掉。否则可能会出现啊,比如XM文件,新的文件给旧的文件上追加内容等等情况啊。我们呢,为了保险起见,都删掉。删掉,然后呢,我们来重新生成,那么把这个测试方法就除掉。我们重新生成。
04:00
这个类里边。好,我们把这个呢,重新生成一下。走。啊,运行成功,我们在这F5。F。然后呢,这块F5好,我们重新生成出来了,出来以后呢,我们来看B里边department跟employee对象还在。额外的呢,还多了一个叫department employee example。这example是干嘛的呢?它就是用来我们做复杂条件查询的时候,拼装咱们复杂条件。哎,适用一个example对象,这里边呢,哎有比如呢,咱们这个排序的列,还有是否去重,以及每一个咱们这个拼装的条件,每一个条件都是它内部的一个criteria。这一块这个呢,如果学过harber net的同学,哎,大家也知道哈,Ber net呢,有一种查询叫QBC诶。COR8CRITERIA也说呢,我们马贝蒂斯也是呢,模仿着这种QPC风格,能做一个带条件的啊,复杂查询。
05:09
好,那么呢,我们来看这些map,这些map呢,接下来诶方法就更丰富了,哎。有count b,然后呢啊,咱们这个计数这个呢,统计有多少条记录,也能按照你查询条件统计有多少条记录,按条件删除,按主键删除。以及保存,哎,以及呢,查询这个呢,是按条件查询,传example结尾对象的都是按条件查询,这个是主件查询,这还是呢按条件更新啊。这个呢是按主键更新等等等等,有非常多的。方法了。我们就来。来测试一下,测试之前呢,我们来可以看一下这个文件里边的实现,这个实现大家就可以借鉴一下了,如果动态circle没有学好的同学来看一下,比如这还有一个抽取,哎,这一可重用的circle。
06:04
他抽取了好多东西用VR标签,诶在这一块抽取了动态。诶,你看啊,各种动态判断嵌套。哎,下边呢,也抽取了好多的这个啊嵌套标签他呢,还抽取了咱们这个基本的这些列,哎,我们数据库里边的列名啊把。东西都抽取出来,然后呢,在这引用使用,诶你看每一个都写了非常复杂,大量的这个动态标签,大家也可以在这一块来学习一下,人家这一块怎么来编写。我们就来测试一下这个复杂查询。好。我们在这儿进行测。我来编写一个方法,Public。Test现在呢,是测试咱们这个马BE3是这个版本。哎,我们之前的这个测试呢,是马提斯3SIMPLE。它生成的简单版的总三态。
07:00
我们把这个之前注掉的再打开。把这些呢,重新引用进来。啊,简单版的测试,我们在这儿,我们接下来,诶已经没有这个select all了。那。有一个,哎。SELECT8EXAMPLE不传条件就行了,它就是查询所有好,我们在这里边呢,我们来测试。测试还是这么几步,我把这一堆代码拿过来。拿过来以后呢,我们在这儿重新来做。抛出机场。好,我们拿到employee member了,来调用的增删改查方法。首先我们来测试第一个查,所有点我们来看啊select呢,有按照ID查一个,还有呢,这一块传一个example example就是封装我们查询条件的。咱们只要说一下。叉叉叉叉,Example。
08:01
就是啊封装啊,咱们这个查询。条件的。而我们没有查查询条件的话呢,我们来传一个呢。这个呢,就是查询所有。我们来输出。每一个。我们来把每一个employee的ID,我就来打印出来是什么。好,现在看好啊,这是查询所有我们来测试。走。哎,这确实是查询,所有发了SQL语句也是这样。那么接下来我们想要,哎,这是第一种,我们接下来第二种。这是查询。所有。第二个我想查询咱们这个员工。名字中。
09:01
有E字母的。和咱们这的员工性别。是一的,也就是说男生,哎,我要查这些符合这些条件的学生,那么怎么查呢?我们来在这里边,我们继续查member。所有的查询带条件查询都是调用这个SELECT8EXAMPLE,而这个example就是查询条件。那我们就来把这个三创建出来。我们来创建出来就来又一个,那么这个example呢,就是我们你查询员工的,那就是员工employee example。Example,好,就用它。把它扭出来,诶这个example就是我们封装查询条件。封装咱们这个员工。查询条件的。Example。那么条件怎么怎么给里边传呢?看好啊,他是这么来传的。
10:01
Example。点,哎,我们来看啊,这些方法里边看起来没有什么传条件的方法,它有一个方法叫create criteria。这个创建出一个criteria,这个criteria就是腾讯。哎,这个criteria,它就是就是咱们这个拼装。平装咱们这个条件的。那么它是怎么做到条件拼装呢?我们现在相当于有两个条件,第一个是哎,按照名字的模糊查询,以及按照性别的精确查询。而且他们呢,还是暗的关系,那么呢,我们是这么来写criteria。拿到这个条件第二一个,诶,你看啊,这里边有各种字段的,哎,比如呢,以及did是在哪个区间,以及did哪个属性等于什么,以及did大于什么,那么呢,我们要。
11:06
跟一跟咱们这个员工名字按。我们是并且关系and last name,诶,Last name呢,这有between equal to啊,什么greater than than这些,我们就来找一个like。这一个like。并且呢,咱们这个名字长得像什么啊。那来百分号一。啊,中间带字母E的,这样的话呢,就拼了一个查询条件,你有多少属性,这个cri里面就能按得出各种属性的各种啊。规则,我们继续来。并且呢,我们还需要的是它的这个真的,哎,这个真的一口吐好。它必须等于一。我们在这一块给它拼装了两个查询条件,然后呢,传进来我们来查询。进行测试。
12:03
早。好,查完了我们来看。我们来看查的数量,这个TOTAL3,哎,查到了三个。查到了三个,我们来打印我们新查询出来的这个东西。啊,我们打印这个意思,把之前的这个。主的。好,我们来打印这个list。这个list。测试。346346满足要求,我们看数据库3463号带一啊,真的是一,四号带一真的是一,六号带一真的是一,哎,只有这三个真的一满足要求,剩下呢都都不满足要求啊。我们来看它的SQ语句,诶他发的呢,这个SQ语句还是。挺好玩的。这where条件里边呢,就拼装了我们last name like,什么and真的等于。
13:06
现在呢,这是。咱们这个库,咱们这个,哎,模仿我们这个harber net q bc分割的查询测试,诶在这里边我们可以通过创建库IA来拼装条件,包括如果我想要发这个色。你查询条件是这两个,或者呢,你的email直接等于。直接你的email中间有。你的email。中间呢,有带E字母的来,只要一慢中间带E的那也成立,你这两个条件也可以不用,我还要或者加一个关系怎么办?也非常简单,看好啊,这是我们这个criteria这块都是and and什么,我们看有没有什么货呀。点。没有什么货。
14:01
好,我们想在这儿,呃,看一下有没有哦什么,但是没有,那接下来怎么办。我们想要拼装新的条件的时候,我们继续啊。继续来创建就行了。Example第二,我再来创建一个库里。IA2,那么在这个criteria里边来封装and。咱们这email应该,哎,Like。Like呢,我们这个百分号,它里边带E带E的。是这个条件。也就是说呢,现在有两个条件,这个条件呢,跟这个大条件两个是货的关系,总表示是呀,哎。我们呢,只需要给example。点。啊,有一个叫哦,把我们新获出来的条件拼装进去,哎,以后呢,我们没有一个获条件,我们就创建一个新的O进去就行了。
15:00
比如说所有的and条件都拼在我们第一个创建的criteria里边,所以你要out,你创建新的criteria给里边O就行了。来测试。我们来测试,我们就看发的车库语句。确实是如我们所愿,他发的是这样,所以说呢,这就是我们啊QBC风格的这个查询,哎,它能带条件的这些查询,这些条件都是动态瓶装的,大家也可以借鉴一下。
我来说两句