00:00
各位,我们继续来学习spring框架,下面咱们继续演示用GBC模板实现对于数据库的操作。刚才呢,我们完成了查询返回某个值的演示,那我们下面演示查询返回对象以及查询返回集合,咱先看这个查询返回对象。那产品反应对象什么意思呢?就是我们在实际项目中很多地方会用到这个东西,举个例子啊,比如说有一个场景,假如现在我们到一个网站中,我比如现在我这个网站中呢,我要去买书,那买书的话是不是首先要显示你书的这个列表,会显示很多本书,那我们点击某本书进入到是不是它的详情页面中啊,所以就是现在你查询这个。图书的详情页面就理解为就是返回一个对象,因为咱们要根据ID查询你图书的奖励信息,然后进行显示,所以这个场景就是反应对象根据ID查询,那我们下面咱就来具体写这个操作。
01:09
我写一下啊,就是第二部分咱就是。用这个JDBC。Complete,然后实现查询返回对象的操作,比如咱刚才提这个查询突出详情,或者说你查询商品详情都是这么一个场景,那怎么做,给各位来写一下啊,咱们现在来到我们这个代码中,在wi里边呢,我现在创建这么一个方法,这方法比如就叫这个犯的这个Y。让它返回一个对象,咱的对象就这个不合对象这个啊,我们写的这么一个结构,然后写完之后,咱们调用Du里面的方法,比这个方法我就叫这个。Find。Book info就是它的相行信息,而咱们查询它的这个数据返回对象啊,查询返回对象,咱刚才说到是不是要根据ID行查询啊,所以我现在在方法里边给它就传入这么一个ID值,根据ID做查询,那我写一个。
02:17
Street。ID,然后这里边把ID传进去,这个啊是一个结构,然后写完之后在Du里边,咱们把方法先创建出来,创建之后来到它的实现类中,把这方法最终给它就变出来。那咱们看怎么做啊,首先第一步呢,不用说,肯定还是编写一个circle语句,那我们写一下,这里边我就来一个星号啊,当然你可以把它的实际字段都写出来,我就来一个星号了,然后后面来一个where,根据这个user ID。做这么一个查询啊,这个是我们写的一个语句,然后写完之后,咱下面就来调用方法进行实现,咱调这个JDBC模板中一个方法,这刚法是什么呢?跟刚才方法一样,只说这个方法中它要用到另外一个结构,这个结构。
03:17
把这个方法给各位先截过来啊,我先写出来啊,就是这个叫。Query for。Object。还是这个方法,只是里边呢,咱要用到的是这个结构。我把这个给各位。截过来啊,这是我们目前要用到的这个方法,然后我把方法还是复制到我的笔中来,咱看一下啊,首先第一个方法中咱看到几个参数。几个参数,大家清楚看到,是不是有三个参数?写下它是有三个参数。然后三个参数中,第一个参数肯定是我们的circle语句,第二个参数这里写到这东西叫肉map。
04:07
这是什么?咱马上说,咱先说第三个参数啊,因为这三个比较简单,第三个就是我们那个传递,你那个就是circle语句中那个问号中的值。这个啊,就是三个参数,然后咱们下面重点说第二个参数,这是什么呢?我强调它的名字叫肉map,肉map是什么呢?写一下啊,就是一肉map呢,它本身是一个接口,这接口是由词里边提供的,这接口干什么?就是他帮我们会做到一些封装,比如你现在你返回就是不同类型的数据。咱们使用这个接口。里边的实现类可以完成这个数据的封装,这实现类在损中已经帮我们提供出直线类,比如咱一会儿返回对象,包括一会儿返回集合,都可以用这个接口中的实现类把这做到,但是这个咱也可以自己写这实现类进行封装,只是现在不需要,因为里边帮我们已经做到了,这是它的一个结构,那下面来用代码给各位具体演示一下,大看怎么做啊。
05:21
第一部分咱们circle语句,第二部分new那个接口时间类,这时间类有一个固定名字,就是用于我们这个对象封装,给大家写一下啊,它的名字叫b property肉。Map,然后在里边写结构,写什么呢?在这个泛型中写上你返回那个对象的名字,咱对象是不是叫这个。不可。然后在括号里边写上你那个类型的class,最后写上参数,咱参数是不是就是ID,然后这么做的话,它最终就会返回咱们这个不可对象就是这么来做。
06:01
然后咱最终把book合对象可以做一个退。这个啊是它一个写法,然后写法中咱把这时现类源码打开,咱看一下啊,这叫ban pro肉map,大家看它实现了谁,是不是肉map接口,然后里边写了一个泛行类,比如说这个位置你传是一个book,它就把这值放到book对象中去,你传个user就封装到user里边去,这是他帮我们写好一个实验内完成这个封装,咱直接new它,它就会把插入数据封装到你这个book对象中去。所以这个啊,是他的这么一个写法,咱们把这个就完成了。所以各位知道这个特点啊,特别这个肉map我再重复一遍啊。肉map是一个。接口,然后这个接口呢,它是针对。啊,针对你返回的不同类型,咱们使用这个接口的实现类能完成数据封装,而这实现类在这个GP模板中已经帮咱们封装了,咱直接用就可以了,比如说我们现在返回对象,那我们用这个叫b pro肉map传入,你要封装成哪个对象的类型,因为咱是book,然后他把数据就能够封装到咱的book对象中去,这就是我们写的这么一个查询返回对象方法,咱们就做到了。啊这个接口各位知道。
07:30
然后洗完之后,最后再来做个测试,看一下效果啊,因为咱们现在这里边反应是book,为了明显我把book里边那个to string方法给他生出来,为了咱一会儿输出方便。Two three正常一下啊,然后生成之后来到我们的测试方法中,在里边咱们来做这个测试。我在里边写一下啊,咱们要测试就是查询。返回对象,我们调book里边这个叫做find y里边传入一个ID值,比如ID值我们就写一个这个一。
08:09
然后它会返回那个对象。比如我们吃这个,不,咱把这对象最终做一个输出。这个不就看一下最终的效果什么样的,那我现在把它执行一下,咱就看根据ID值能不能反映对象。大家清楚看到book对象是不是输出了user ID username users值是不是有了,就是这个过程中是由这个spring AB bc模板帮我们做到的,它是怎么做的呢?把你查数据取到,然后调你book里边的set方法,把值依次给它都设进去,最终咱把对象一输出,把值里边都封装完成了。这是关于我们说的用GDBC模板如何反映对象。
09:00
这个啊,咱就写完了,各位把这给他能够写出来。然后对象做完之后呢,咱再看最后一个操作,什么操作返回集合,返回集合写法跟咱上面差不多,那我来写一下啊,首先第一个也是它这个场景,这场景就很多了,比如现在我们要查询你的图书的这个列表,包括你做什么分页等等,那这些肯定用到我们这个查询,因为你查列表肯定会有很多条数据,你分页查询,每页显示是不是也是有很多条记录,那这个时候大家肯定用一个集合形式进行封装,那在下面看这个怎么做。就咱们啊也是。调用。JDBC模板中的方法实现查询返回集合,这个过程咱们看啊,它的最终实现。那各位我来写一下啊,就是现在呢,还是我在这个service里边,咱们先创建一个方法,让这个方法返回这么一个。
10:10
集合。我把这位置写一下啊,咱就把一个list集合,然后它的泛型中是这个book,这方法名字改一下,我就叫泛的这个O,就是查询表中所有记录,它里边咱就不写参数,让他把所有记录都查出来。这个啊,这个方法,然后写完之后,咱们调用book do中的方法,把这个最终查询,我叫find o book。然后里边它不需要参数,这是啊里边的编写,然后写完之后,咱们写这个DA,在DA里边先把这个方法创建。然后。来到它的实现类中。在实现类中。把这方法。最终做实验,那咱们看这怎么做啊,跟刚才的那个查询对象应该说差不多,第一部分也是写个circle语句,这个语句就是查,所有咱就来一个select星号from t。
11:15
不考。然后第二部分调用ADBC模板中的方法进行实现,但我强调啊,这个调的方法跟之前不一样了,它调什么?这方法调的就是这个query方法。那我把这个方法给各位也是。截过来,咱们啊,放到我们的笔中来。让大家观察这个方法名字叫query,但是跟咱们刚才那个RY for object里边参数是不是一样啊,就是还是这个参数给各位拿过来啊,咱再看一遍第一个参数。这个语句第二个用map,针对不同类型,用它实验类做封装,第三个你的参数值,所以现在里边有这么三个参数,那咱现在用这个方法把它做到,那咱看下面怎么来写啊,咱完成一个最终调用。
12:08
咱调一下啊,就是调里边的方法叫query,三个参数,第一个circle语句,第二个new个实验类,这实验类还是刚才那实验类,跟刚才那一样,New proper,然后加上一个叫book,加上这个叫book.class因为它没有参数,所以第三个参数可以省略不写,这可以没有,就你没有参数嘛,那就不写了,因为语句中就是它所有最终大家看它返回的就是里如一个历史集合,呃,方法丢错了,应该是宽啊,它返回的是一个。历史集合。我再重新返回一下啊。这里边我们来一个返回值,注意是一个粒子集合,然后咱们把这个历子集合最终做个re退,这样的话把它就完成了,而就是现在,因为我们是查出数据有多条记录在这里边框架中给咱做的封装,他把每条记录得到先放到book可对象中,然后把我们的多个book可对象放到这个list子的集合里边,最终给做返回。
13:18
这就是查询返回集合,这个代码跟咱们刚才返回对象应该基本上是一样的,只是换了一个方法,这个方法名字叫query。这个啊,我们就写出来了。然后洗完之后呢,咱最后也是做一个测试,看一下最终的效果什么样的啊,最后咱给他就是测试一下啊。那咱来测一下,我来到这里边,咱们还是写上一个测试的方法。查询返回这么一个。集合,然后这个方法咱在里边调一下book three里边这个叫做应该叫find的O。
14:02
返回的。历次集合,然后咱们把这个集合最终做个输出,那就看结果什么样的啊,那我们来最终试一下啊。把这个执行看看效果。各位看啊,因为咱们现在是输入集合,集合里边你看现在是不是有两个不会对象对应咱们表中是不是那么两条记录这个啊,我们就完成了,所以说到这里为止呢,咱就要使用JDBC模板实现对于数据库的增删改查操作,把这些都完成了,所以各位掌握就是在里边,如果说你做添加修改,删除它掉的都是里边的阿的方法进行实现,如果说你查询返回某个值调的是query for or。查询反应对象还是query for of是参数有区别,如果你返回式集合,那调的是query方法,把这完成,所以咱把里边的最基本的增删改查方法我们就完成了,各位把这些代码给他,一定能够熟练的写出来。
我来说两句