00:00
各位同学大家好,刚才呢,我们演示了通过JDBC实现对数据库的增加修改以及删除操作,那下面呢,我们来演示对于数据库的查询操作,查询操作里边呢,我们主要演示这么几个过程,给大家写一下啊。首先第一个我们演示查询,就是查询呢,它可以返回是某一个对象,这是第一个,比如我查询一条记录,返回到对应就是一个对象。然后第二个我们来演示查询返回的是一个例子集合,比如我现在啊,查询表中所有记录,我表里边是不是两条记录,那返回的就是一个粒子集合。然后这个之后我们再演示第三个查询返回,就是单个的值,什么叫单个值,比如现在啊,我查询表中有多少条记录,我目前表里面是不是两条记录,这就叫返回单个值,咱们就演示这三个部分,那咱下面继续来做一下,首先啊,因为它用到一个对象,所以咱们这么来做,在里边呢,我先建个实体类,为了一会儿景凤装这个类我就叫。
01:16
在类里边加上属性,这属性我就直接复制了啊,就是四个属性,ID名称,年龄和性别,然后咱们生成它的get和set方法。把这些生成,并且为了一会儿测试方便,我把它的to string,我们也给它生成下。现在这个准备好了,准备好之后下面呢,我们开始写这个内容,首先第一个啊,先查询返回对象。我在里边写一下啊。咱们加上一个方法。Public test select就叫object啊,就查询反映对象。
02:02
然后在里边写一下具体代码,跟刚才代码结构类似,只是调的方法和写的语句以及传的参数不一样,了结没什么变化,那咱来做一下啊,首先我们的第一部分还是编写词后语句,这部分肯定是不变的。咱们写一下啊,编写一个这个语句,那我们写个语句啊,就是select加上星号,呃,但实际中我们还是建议把字段写出来,比如说你这里边select ID逗号name逗号逗号sex,我这里为了测试方便,我就写个星号了啊,加上from这个EP。然后加个VID等于你的值,根据ID插曲返回的是不是就是一条记录?包括咱就返回一个对象这种语句,然后语之后咱们下面的调用JDBC汤中的方法做查询。
03:03
那我来调一下啊,这个方法呢,我们要调什么,给大家说一下啊,在这里边咱们刚才做增加、修改、删除,用的都是update,如果查询的话,用query开头有一个方法,大家看这方叫query for object方法,而目前咱用哪一个呢?给大家找一下啊,目前咱用的应该是这个方法。我把这个给大家截过来啊,这个方法呃,没有截全,但是最后一个是一个可选参数,就是它相关的参数部分,咱把这个拿过来给大家解释一下啊,就这个部分。我拿到这里,呃,最后一个其实就是它。就是这个。啊,跟他是一样的啊,赶紧给他补充一下啊。来到这里,这是我们看到的这么一个就是方法,然后方法中大家看到啊,有这么三个参数给大家写一下啊,第一个参数SQ语句,第三个参数语中那个问号中的值,这两个好说跟之前都一样,重点大家看第二个参数。
04:13
这个比较特殊一点,它是什么?Map map是什么呢?大家注意啊,就是它本身是一个接口,这个接口做什么呢?用于数据封装。比如我现在啊,把这个数据装成一个对象,封装成一个集合,通过肉mapper进封装,所以咱们用它完成这个封装呢,我们可以自己封装,也可以用它的实现类,做到一会咱们都会写下自己封装一下,用实现类咱也封装一下,当然它的实现内肯定会更加的方便,那咱们下面啊,我们来往下继续写下。我们用query object这个方法,然后里边传参数,怎么传的,第一个就是语句,然后第二部分呢,我们这里边有个接口,就这个叫肉这个接口。
05:07
然后他怎么做说一下啊,方式有太多种写法了,比如咱们找一下这个接口,咱们看一下。这个接口中大家发现啊,是不是有一个方法叫map肉,然后方法中有两个参数,你看啊,第二个参数就是你现在在第几行,就是你行的数量就行数啊肉number行数,然后第一个叫结构集,就是每次查出那个结果放到结构集中,这如果说你还记得GBC应该见过它,所以咱们用它可以自己封装,就是我们自己实这个方法进行实现。另外大家看在接口中有很多实类,咱目前主要用的是第一个叫b map,通过它能封装返回对象,返回集合,所以大家一会儿用这个实现,咱们先手动来封装一下,那怎么做给大家写一下啊,我这里边咱就用这个JAVA8的写法进行实现了。
06:06
啊,当然里边还有第三个参数,第三个参数是你的那个ID,咱就来个一。我这里边啊,写第二个,那怎么做,给大家写一下啊,咱这么来做。我加上这两个参数,第一个叫这个RS啊,第二个就叫这个个number。然后在里边我们加上一个拉姆的表达式这种形式,然后在里边我们开始做它的封装啊,先他一个值啊,先不让他报错。啊,我这里啊,先return一个nu啊,先不让它报错就可以了,然后这里边最终得到的应该就是我们的一个对象,这对象就是再做个转换,所以现在我们里边咱们这么来做,然后这个用的是JAVA8中这种写法,给大家写一下啊,这里边该怎么去做,然后它的做法就是大家看这里边啊,我把结构呃,先稍微调整一下啊,这个结构稍微调一下。
07:04
然后大家看结构中啊,有一个叫res,这表示结果集,所以做法就是从结果集咱们取到数据,然后咱们自己做封装,因为我最终要放到这个里面去,所以咱们在里边先一个这个对象,然后向里边来set它的第一个值name,然后name值呢,通过RS给它取下get string加上这是第一个,然后第二个跟他一样。点上edge rs.get这个int加上这个edge。就是我们这个年龄,然后之后里边还一个是它这个性别RS get string加上性别,最终把这个emp我们进行退。
08:00
啊,这里啊,少写了一个引号啊。把这个给它加上。所以大家看啊,现在呢,我们通过这个部分把这个代码就完成了,然后他最终返回的是一个的这个对象啊,就是它这个对象。呃,给他改个名字啊,我这个。这个对象现在完成,完成之后啊,咱们把它最终做个输出,后面咱为了测试能看到里面结果,因为EP咱们把它那个突死缀刚才都证出来了。以上就是第一种写法,咱们需要手动封装到它的结果,就根据里边接口中这个方法,因为它就是一个方法,所以咱把它做个简化,用拉表达式的方式,两参数通过RS得到结果封装到对象中,最终返回,然后就得到了,我们根据ID1查出来这个结果。
09:01
这个啊是咱完成的,完成之后咱们把它测试,试一下这个效果,看一下最终内容。然后大家看啊,这结果是不是出来了,得到最终内容啊,当然里边还一个ID啊,这ID我也封装一下啊e.ID。RS get ID。看他最后的结果。所以大家看这个结果是不是就得到了,这就咱们查询返回对象啊,咱们的第一种写法。角这位置啊,就是写法一,这种写法呢,完全可以实现,但是大家发现它的缺现,这么写是不是特别不方便呀,所以我们实际中咱怎么做,咱们如果说你只做这种需求,其实咱没必要自己封装,在它的接口中给咱提供一个时现类,这个时类刚才咱们看到了啊,就这个叫B肉map,通过它就能帮我们进行封装,咱就不需要再自己封装了,那咱们下面用下它的实现类,把这功能我们再快速完成一下,其实他的思路是一致的啊,只是说他帮我们做到了,咱不需要自己再写这过程。
10:20
那我这里边继续写一下啊。我们的写法二。第一部分语句,然后第二部分呢,JDBC中这个方法query for object,第一个circle语句,注意啊,第二问怎么写,咱们直接个对象叫b poverty肉map。然后在里边呢,加上你那个就是实体类,就是返回那个对象类的,最终就可以直接的这个对象,他就帮我们实验,这过程他底层是这么写的,只是这实验类中帮咱做到了,不需要我们自己再进行这个封装。
11:04
这是我们看到的啊,然后最后把这个我们也做一个输出。咱们啊试一下最后的结果,这就是查询反应对象,不管你是用自己封装还是用它这个实现类最终都可以做到啊,那我们看一下啊,这里边啊,他说出了一个错误,看哪里写错了啊,看这位置说这个circle这个语法有问题。大家看什么问题啊,大家注意看,我目前问题是什么呢?你看啊,我这边是不是有参数,但是我写的时候,刚才我忘了传,是不是这个ID值了,这值咱没有传,告诉你这个出错了,咱们把这个记得要传进去啊,有一个参数ID值,根据ID查询。传完之后我们再试一下效果。然后大家看这结果是不是就对了,所以这就是我们演示的第一个插曲,返回list集合,就返回对象啊,这个各位要知道,然后这个之后我们再演示第二个啊,就是返回次集合,刚才是对象。
12:07
过程类似,咱们快速写下啊。利的。那这过程中第一部分咱们还是写一个语句,我写一下啊,From t。然后第二部分调方法,JDBC他们中注意这个方法啊,这个方法就不是query for object啊,它就不是刚才那个方法了,这个方法它就叫query,因为for object是回对象,咱现在是返回集合,用的是query,在query里边参数跟刚才类似,第一个参数circle语句,第二个参数咱们也可以自己封装,当然目前咱用个对象。这个对象啊,跟刚才的对象是一样的,上的实体,然后最终返回的就是一个list集合。
13:12
这是我们得到的啊,比如现在我把这例子集合,我就直接咱们做个输出,因为咱目前就两条记录啊,给他最终。输出一下,这就是咱们写的第二个查询返回例子集合,还是通过这个时间类进行封装,当然也可以自己封装,指咱目前用它直接实现就可以了,最终返回集合。注意方法不要掉错啊。最终我们试一下这个效果,看它是怎么样的。大家看里边啊,返回集合两个对象。一个ID一个ID2这个咱就完成到这里。然后这个之后我们再演示最后一个操作就是查询返回单个值,什么叫单个值呢?比如现在啊,我想查表里边有多少条记录,那是不是就是单个某个值,所以用这个我们做一个演示。
14:08
那咱们写一下啊。加上test public test。就是咱就叫value,就单个这个值,然后在里边怎么做,第一部分还是写circle语句,这个不变。咱们写个语句啊。Select count,我加个信号了啊,然后from加上咱这个表,这样的话得到多少条记录,然后下面呢,用DBC个方法,注意一次方法query,然后注意里的参数不一样啊,第一个语句,第二个是你返回类型的,咱就来一个。这个点,或者来一个in啊,点class。
15:03
第三个是你里边那个语中的参数,因为咱语句中没有参数,所以就写这个。再强调啊,这个表示你返回类型的class是咱返回int或者返回或者什么加上它的class,然后最终把这个我们做一个输出。我们就写个count,这个就完成了,查询表中多少条记录,用这个进行实现。然后大家看啊,最终结果是二,咱们就返回了,二的这个值表示表里边有两条记录。所以说啊,到这里呢,咱们就快速演示了,通过JDBC他里实现对数据库等增删改查操作,为了咱们一会儿进行事物演示做准备,这也是死里边给我们封装一个功能,它就是对GBC封装,让咱用它可以很方便的实现对数据库的操作。
我来说两句