00:00
好,咱们建个项目就叫早测吧。把这个过程都从头写一遍啊,首先引炸包,第一个是数据库的扎包,第二个是DB的扎包。把他俩构建到项目里。OK,然后呢,创建一个配置文件。Con their properties。好,这个里边呢,正常driver class。等于。然后是URL等于。Username等于,Password等于。这个这个这个有没有之前代码copy一下,嗯,这个也不用哈。
01:02
这个东西啊,你要背不下来的话,反正我每次都干嘛呢。数据库开发视图。找到我原先还记得叉叉叉吧,右键属性。驱动属性第一个。不是。再来一遍。属性。驱动属性,然后再再在哪去了。不是啊。哪有?哎,这跟之前版本不太一样,就找不到了啊,找不到这块找一个类一提示是不是也有啊。呃,回来。创建一个来。工具类是。对。OK,写一下吧,oracle.jdbc.oracle driver。
02:00
OK了吧?哎,这个四个参数呢,搞定了,紧跟着就在这里边写。四个参数。Driver。我这为啥用私有了。我不,我这会儿我封装过吗?盖在的吗。因为啊,你想想啊,就这四个变量啊。是不是它只是做数据库连接的时候才会用到,所以呢,数据库连接跟着我是不是在这里边写一个方法叫做数据库连接啊。换句话说,这四个参数除了这个方法,别人用它有用吗?没用,而且还不安全。所以我就把这四个参数。
03:00
换成了私有的,仅让它在本类中使用。就是我觉得这几个你们用着也没用,而且还不安全,所以我把他们几个搞成私有的。因为我这块给你开放链接了嘛,对吧,所以你访问它访问干嘛呀,所以我给你搞成笑的,不让别人访问啊,不让别人访问。OK,那这块这个两句代码是啥来着。Class。Full driver。Conn被等于。Driver manager get。URL name和PWD。好CON4,然后是不是三啊,三个对象啊,在这里边咱们是不是用到DP啊。咱们用的是这个玩意儿啊,所以那个啊和RS是不是就不用声明了。
04:00
哎,因为那两个玩意儿啊,就是那个和RS在dbu内部,它已经帮你封装好了,所以你根本就不需要用它了,这块呢,四三那三个对象啊,只留下一个了。只留下一个了,咋写来着,Protected是吧?再见。哎,只留下这一个解压包。而且而且是什么呢?咱们的关闭方法是不是也省略了,也是DP里有了啊,所以呢,还差一个什么呀,获得参数是吧?哎,获得这些参数好写在顶上吧。Sta。好,这个静态代码块里边想访问他们,那肯定。对吧。哎,这个东西。哎,等会啊。
05:04
这两个变量有啥区别?就是这两个单词,这两个关键字,我交换了位置。就是先私有后静态,先静态后私有啊。说呀。他们都属于权限修饰符啊,所以没有任何区别,这俩玩意儿。这,这,你别笑,这是个面试题。这是个面试题,还有一个单词,还有一个这个单词。好吗?这仨这仨玩意儿是这样啊,现在翻译在前面吧,也可能这样。也可能这样。可能。就问你给你一些选项,这几个变量有啥区别,如果你不知道的话,你是不是开始蒙了,就呀,先静态先自由,怎么怎么地一顿胡蒙胡蒙乱道是吧。
06:02
其实没啥区别,你越写的越多越越错是吧?好吧。我自己回头好好试试啊,这啥玩意儿好了,然后呢,这里面咋写代码来着。先加载这个配置文件是吧,那就是当前类。There class。Class,哎,什么来着,Get class loader啊?然后点get resource as string config.properties。然后返回一个input stream。声明一个pro。的对象。哎,还没提示呢。讨厌啊,PP点漏了。呃,加载is,好这个引引包。IO流这句话抛一堂。
07:02
好,紧接着就从配置文件中获得参数值,给它们四个变量赋值吧。好了,那就是坡点get property。一个对吧。Driver。一共四个。分别接着下边是URL。这里边叫name,这个叫PWD。但是在这个配置文件中,第一个叫啥了。哎,叫driver class OK吧。啊,第二个还是叫URL,第三个就是username,第四个是password,所以我为什么把这两个单词起成不同的单词了,就是让大家区别开啊,区别开这些是配置文件里的,这些是咱们本类中的下边这个四个变量。OK吧?好了,那么这样的话,我这个类啊,基本上就写完了,咱们简单的搂一眼,没啥毛病吧,有啥毛病指出来啊。
08:07
好吧。好啊,我觉得没啥事了啊,如果有事的话,报错咱们再调好吧,来挂了吧,连接这一块都搞定了,紧跟着啊,咱们再看需求,到现在我都不知道需求是啥啊,写student的分页是吧。嗯,每页十条分多少页,方法要通用,如果改变每页为五条,也要计算出多少页,那相当于,也就是说每页多少条应该定义成变量是吧?好嘞,那咱们就写一个类啊,这里边我也不搞太复杂,建一个类。叫配。首先包名啊。然后呢,Student分页叫student page。行吧,配就是页的意思啊。我这个名一写出来就是,如果是咱们行内的人一看,他一下就明白是啥意思。
09:02
那就是学生分页的DAO模式是吧?好了,那它呢,是个什么类呀,肯定是接口是吧。Face来。在这里边定义方法吧。都应该定义成什么方法?那肯定的啊,肯定的是那个那个我说的方法名,咱都定义啥方法,你是添加删除的意思啊好,这里面呢,咱们的需求什么呀,就是共分多少页,是不是一个需求啊,所以呢。得到。页数,这是第一个方法吧,那咱们之间顺着,虽然说咱们题目上并没有说写分页查询哈,那咱们也顺道写出来呗。行吧,来补全的啊。哎,然后呢,再来一个方法。就叫分页查询。两个方法呢,开始定义啊。呃,如果说想得到多少页的话,我这个方法啊,啪啪那个省了。
10:04
那最终返回的是不是就是一个几页啊,十页八页这个in呢,好了,那咱们这个方法名叫啥呢?咱就叫page count。行吗?就是页的数量是吧,哎,然后呢,需要什么参数不。肯定需要,因为什么呀,你比如说数据一共有62条,我每个页如果是两条的话,那总共得多少页啊,是31页啊,那我说每页100条数据的话,那整个多少页啊,是不是就一页啊。所以最终得到多少页,根据谁来的,是不是每页的数量啊,咱们就叫做配置。在什么?配着size叶的长度或者说尺码是吧,哎,这样。参数为。
11:00
每页条目条数。每页的条数。好吧,啊,然后把这个分页查询呢,咱们也定义出来,其实分页查询啊,最终得到的是什么呢?我比如说我查询第三页,你是不是应该返回十条数据,而这十条数据是第三页的那十条啊。然后我说给我查询第八页的数据,那返回的是不是仍然是十条,然后是不是第八页的那十条啊,所以不管怎么着,最后返回的是一个集合,里边装的是什么呀。里面装的都是四榴弹,OK。好,然后呢,它这个方法叫啥名呢,咱们就叫分页查询吧,咱叫配着丝。哎,配的四好吧,里面传什么参。我刚才说过了,传三给我查第三页的十条,传八查第八页的十条,所以第一个变量那就是每第几页吧,是不是第几页啊,咱要配置。
12:10
Index。行吧,Ear的下标页的索引,OK。哎,然后呢,还有个需要什么。还是什么?这叫页码。你看啊,我输了每页返回十条是吧,那如果说我说这不有吗,我给你传。第二页,每页显示20条。对吧,也可以给它通用,改为第八页,每页显示100条。所以这块不仅是第几页,而且还得携带着每页多少条啊。哎,这样方法才能通用啊,所以第二个参数就是每页。
13:01
多少?OK。这里面差一个什么呀,Student是吧。后悔了,刚才代码删那么快干嘛呀?这个类写起来。废了。就是要废啊。行吧,也没多长时间。呃,我从硬盘删除还不回来了。呃,起个VO。好吧,这次我这个实体类,什么叫实体类,这是。跟表一样的类是吧。我又改了个名。我第一次用的是不是models啊,第二次用的是en啊,又改了一个叫VO。OK,好了,这里边儿就开始写吧,咱看能不能背下来啊,第一个是学号。第二个是。等会儿的吧,写上这个了。
14:04
第二个是密码是吧。老老。呃,各印PWD,然后是。性别。Great ID吧。这个啥类型?电。然后这个是。一没。一共几个,三三九十九个吧。Get set全生成,然后呢,咱们在这一块再生成个啥呀。吐死啊,要不输出太恶心啊。喊谁了?完事了,改个名。学生。好,然后这个密码呢,我不准备显示啊。
15:03
行吧,密码不显示啊。好了,掉在这个类呢,也封装完了,这个方法呢也搞定了。接下来干嘛了为借口。实现类是吧,do.ipl。叫做student page DAO的实现。然后它的父类叫DB接口叫做student,一搜就有了。是吧,改着了完成。这两个方法GB类呢,需要引包。错了。什么鬼?好了吧,然后接着呢,咱们把这个方法写一写。方法。来第一个,咱们先把题目要求说完哈,总共多少页,把这个写出来。
16:03
其实总共多少页的话呀。怎么算的?你看啊,咱就以学生表为例,62条除以每页十条。等于多少?总共分多少页?六。好吧。啊对,七页啊,为啥七页啊。余数两页吧。好,假设呢,如果为。50页呢,50条呢,分几页?五页是吧,别50条了,60条60条吧。六页是吧,所以其实啊,你想得到第几一共多少页,你这个变量的话,是不是每页条目咱们给出来了。对吧,然后接下来是不是你得计算出你这个表里一共多少条数据啊。对吧,这是关键啊。所以呢,咱们先得到这个啊,先把表中多少条数据先导出来。
17:05
来吧,定义思考语句。Sla count shma from student。Carry。Runner。Query。Runner。包。Q点执行query连接对象。第二个SQ语句,第三个是啥来着,我现在要只查询的什么呀。是不是叫数量啊。应该什么?数组啊,还是啥玩意儿。数组是不是就够了,所以是另一个AR ay。好了。
18:00
OK。你吧。好整个方法呢,这需要一个啊。呃,我这个踹呢,我就全踹上去吧。这么的,从头到尾全踹上。OK好,然后呢,在这块呢,直接咱们干嘛呀,返回的是不是一个数组啊,Object类型的数组啊,咱就叫A。好,然后最终返回的是什么?AR70啊,A0是不是就是那个62啊。好,首先我应该把它转成字符串,然后干嘛。In t咋写来着?点pass吧。最后呢?是不是返回啊。等会这个范围不是他吧。咱们是不是只需现在暂时先留下呀,这个叫做呃,表中的总数量,咱叫总的数量。
19:04
在这块不需要返回呢啊,这块得到的是不是62啊,而我要求得到的什么是这个对吧,页数啊好了,那把这个变量呢,写一个注释啊。干嘛的,就是表中共有。共有多少条数据?OK吧,这个得到了,接下来这个值咱们你看。能不能换算出来了这块呢?我看刚才很多同学都写if判断了是吧,能整除的时候走这儿,不能整除的时候走这。那这一块呢,我准备直接看我的啊返回了。这块我慢点写,大家看着啊。啊,行,先在这写吧。用三看我除以。配置先写十。不是。取余数。
20:02
等不等于零。等不等于零。如果能够整除的话。如果能整除的话,说明假设我走的这个吧,那你说的最后多少页啊,是不是就是some count?除以十。对吧,取整数部分吧。好,那如果这个除出来啊,它不等于零呢,是不是这个呀,它俩一相除,取整数部分的六,是不是还得加上一个一呀。哎,所以冒号。加一。OK,把它呢,放在这儿返回了。返回了。好,那这个十是不是每页多少条啊,对吧?哎,每页多少条,那每页多少条,我是不是定义成变量了。不是。过来。是。十。好了,这个方法写完了,最后呢这个点。
21:04
Slowly。叫DBT。什么鬼?点close。Check。别别别。测一下呗。写个测试,Test test分页。慢方法。Student dance有一个student不是。配置哈。然后另一个student配的实现好scanner。是不是得输入啊,哎,每页的条目是不一样的啊SYSDN。请输入每页。
22:00
说。啊。没有的条数。别换行。Page size等于。我输入的next in OK。这个变量有了吧,接下来我就调这个方法了啊get sd.get诶。叫啥方法呀?把这个叫页的数量是吧,这个size扔进去,最后它返回的是不是这个意思啊,打印。呃,该表。共分X页。好,把这个X改为变量。这谁呀?咱们俩。来吧,测一下。Run as Java application。呃,咱把下边这个通用代码先写上,把这个方法也封装上啊。
23:05
这个等着别浪费时间。定义语句。这个词口语句什么语句了。就是分页的那个。好。Query。R。Runner q,没有一个runner。Q点。连接。So。诶。然后。这个后边。呃,这个四口语句还记得长成什么样了吗?来,把这个分页咱先写上把在这写不太好写哈,其实也差不多啊。S select from student,然后呢,我现在要给他加一个earlier是吧,LA。X点星加上啥?
24:02
Row number,然后起个are from来自于下面这张表。对吧,X。好,然后呢,有二列了之后,外层是不是开始点。干嘛了?是不是也可以咱用R分页了。嗯,大于零,并且R小于等于十。对吧,把这个搞过来。上。这是我的思考语句,而这个零和十是不是应该是变量啊?改不漂亮啊?这样的。那也就是说这里边儿有两个问号,两个问号的话,这块第三个变量是啥来着。集合了。另一个B。
25:02
Been list。Handle,然后里边泛型是装的是student吧,Student,然后student class好往下走。接下来是这两个参数啊,第一个参数咱咋算来着,还记得吗?这边来看这。这么给他回个车。这是第一。第二页应该怎么写,这是20,这是十,第三页呢?30,这是。20、OK,它们之间的关系是什么?后边的啥呀。是不是就当前的页码乘以十啊?后边那个。对吧,第几页是不是乘以十啊,OK,这里边一共有一二两个两个参数。那我刚才说的是不是后面那个。后边这个再看一眼,后边这个是什么。
26:01
当前页码是不是乘以十啊好,当前第几页是不是叫PX。所以第二个参数为配对X乘以十。对吧,十是哪来的。是不是就配size?好了,第二个参搞定了,接下来看第一个参。第一个三咋算来着?一的时候是零,二的时候是十,三的时候是20,是不是用的就是N减一。城市啊。啊。N减一乘十吧,你看三减一是不是二啊,二乘十是不是20就差吗。所以把它搞过来,就是这个参数好,这里边这个N是谁呢?第几页。哎,第几页?好,后边这个十是谁呢?He said?引爆。好,整个这个方法需要进行拆开啊。
27:01
返回的是个什么鬼来着,是不是直接是一个集合里边装的就是。是丢,但他呀。然后一个list。是吧?你看这么一些。就完事了吗?但是我这部有很多余了。对吧,这块返回一个集合。而我这个题目是不是直接要集合呀,所以怎样。直接return是不是就OK了?追瑞特啊。OK吧啊,如果你这个查询失败的话,返回空,如果查询成功的话,直接返回这么一个集合。刚才这个分页还没测呢啊,十条。OK吗?来,再来一个,每页如果20条,口算一下几页?三页三页的话是不是就60了,它多了两条是不是也四页啊。有问题没?没了。好了,一点毛病没有。
28:01
对吧,好,那这块搞定了之后啊,咱们紧跟着这个方法是不是也写完了,直接把这个方法是不是也测出来了。好来,然后呢,在它的测试类下边再来。数据如下是吧。分页数据如下。怎么个意思?调用SD这个对象里边的叫分页方法叫哪个来着?就叫配置思是吧,把第几页给我放进去,假设我先写个整形一啊,然后每页条目我刚才是不是这输入了。好了,来,它返回的是不是一个集合呀。哎,这个集合叫做student。好下。List点儿。Size。咋的啊,没引包呢?Size。先看一下行不行,就是能不能通过是吧,运行。
29:00
是。这个得十说明啥?我这个集合里面是不是有十条数据啊。对吧,那我怎么还记得我这个list怎么变历了的吗?List点什么?Foolish。For it。然后里边写上拉姆达表达式,最简单的是不是system,那个system.out冒号冒号。Frontline。对吧。执行。再来十。是不是诶。啊,金条就我删了是吗。哎,是不是十条啊,好,再再来另一页的话,你这个一是不是也改了。好。这里边儿你这个一得改为变量。就来再次输出呗。请输入。请输入啊,啥意思?第几页的意思是吧,就第几页啊第几页。
30:04
然后帮你回车分页数据如下是吧?好,来接收一个变量int,就是当前页的index第几页吗?输入。输了。Next。好了,把这个。一改为变量index。好了,试试吧。每页条目十条,我想查询第几页,我想查询第七页。对吧,原来62条第七页本来是两条,结果我之前把金蝶干掉了,是不是只留下一个了。好了,大功告成。
我来说两句