00:00
然后呢,我们来看一下下边这个练习,练习的话呢,第一道题说呢,从控制台像数据库的表customers当中插入一条数据啊,这个呢是从控台,其实通过这个呢,也可以简单体会一下,我们就不用像用statement做拼串了,这个我们直接呢通过障碍服的方式来做这个题呢,相对来讲要简单一些,来我们做一下这块呢,我们再去新建一个包。哎,这包这包这块把这个勾去掉啊,每次这块创建它都有一个相应的一个包信息了,这个我们叫一个四,专门做的是练习。好,分列式。哎,在这里边儿呢,我们先做这个练习,一来建一个class。哎,练习一的一个测试行,那练习一这个测试的话呢,它是向表中插入一条数据,其实呢,就相当于我们使用一下通用的增删操作了啊,那这里边我们把这个增删改操作呢拿过来,诶我们写在这个叫update里边来拿过来这个就行。哎,到这啊,CTRLC一下,好,这个粘过来,诶,我就放到这了,Ctrl shift到F,哎,这个呢,咱们做的这个课后练习啊。
01:09
行,那我们呢,要使用一下这个叫通用的增删改操作,诶上面呢我就来写了一个具体的测试了,对这个整个代码我写的话呢,是呃习惯了,是从下往上写了,诶大家看的时候呢,也是从下往上看啊,诶test这里边我们是希望insert数据。嗯,这样子,这个呢,我们导入一下,好看一下这个题目要求啊说呢,从控制台呢,你去输入一下,嗯,员工ID呢,这个就不用了,ID呢,咱们维护了一个就是咱们其实用的就是这个表维护了一个自动的一个自增长的ID了,所以不用写它,然后name email birth是吧,来填这样的几个数据就行。嗯,Photo呢,咱们这块呢,也先不考虑行,那这呢,我们就这样来写了,先new一个scanner system。
02:05
点一。诶ctrl shift o一下先,然后CTRL1啊先生成一个scanner,然后呢,我们这块呢,来调一下这个操作了,先来一个提示。你看就输入用户名是吧,那这边这个ID的话呢,咱们就不用输了啊,输入用户名。诶这样这个换行的话呢,诶你愿意加也行,不加呢也可以,那就给它去掉,调一下这个scanner点,诶next方法,诶CTRL1诶这个呢叫name,诶用户名,然后呢,Email还有birth这个我们都可以获取一下啊CTRLC。请输入这个邮箱,请输入这个。嗯,叫这个是吧,生日。
03:07
哎,这个我们叫birthday,诶可以哈,行,诶注意这时候我们获取这个生日的话呢,也是一个字符串的方式来获取的,诶是这样的一个情况啊,诶保存一下,然后呢,我们需要呢,呃,调用一下咱们这个叫update的这个方法啊,CTRLCCTRLV翻过来,呃接着我们需要呢,呃,传一个SQL语句,哎,SQ语句还没有提前写一个。Insert into customers,然后这块呢,标识我们需要附的这个字段,Name email birth这样,Values一个两个三个这样,嗯,这就可以了,好,这个S呢放进来,接着呢,填充障碍符,对应的就是我们这样的三个字段,这三个字段的话呢,第一个叫name,第二个email。哎,第三个birthday,哎birthday哎这样好我就写过来了,这时候呢,大家可能会有个担心,说我这个生日的话呢,正常是这个字段,呃,填充的这个占位符,这呢对应的是我们这个Bo Bo呢在我们数据表当中是一个date类型,Date类型对吧,那那我这块呢,传一个字符串靠谱吗?这这块呢,就是我们就在讲数据库的时候也提过,它其实有一个叫隐视的一个转换啊,就是我们这个bos的话呢,咱们在操作数据库的时候,你也看过它这个默认的格式呢,就是年月日,比如说啊1992年啊零九杠零八,就是你要字符串写的是这个格式的,它其实也可以自动的认为你就是一个日期类型的,它有一个隐视转换,诶所以呢,诶我们这块呢,这样传,只要你这个格式是这样子的也没问题,好这呢是一个update,那update成行完以后,这就算结束了啊,你说我这块呢,要是写一个CT说叫添加成功多少呢,感觉有点。
04:52
不太合适,就万一就是好像说呢,只有成功的情况,没有失败了是吧,因为这里边呢,你看你这个TRY开这块是不是都给把异常,如果有的话呢,也都处理掉了,也就是说这行代码呢,按说就是你别有那些控制人的问题啊,哎,就是按说呢,这个操作是不是一定会执行啊,那要一定执行的话呢,你出现异常这块呢,也报了个添加成功,多少有点不太合适,那怎么办呢?我们希望呢,通过这IPA的呢,你能够体现一下怎么叫成功,怎么叫失败,所以通过这个例子呢,我们再诶多说另外的一个方法。
05:25
哎,大家看啊,这个呢叫update啊,然后这块呢,我们叫执行,那么执行的话呢,我们这块,呃,这个update呢,返回的是个word,我们想能不能通过这个返回值来看出来是你是成功了还是没成功,对吧?诶可以这样的,对,那咱这块可以考虑的是不是就是这个波类型。对吧,是可以是个bird类型,这个想法呢,没问题啊,那要这样的话呢,我们看这个这个呢一看哎呦恰好还是个bird尔类型,好巧,直接return一下,不报错了啊,这个这个是后边这块啊,我们再需要return,这来一个false,哎,这就不报错了,说来那可以了,来注意不对啊不对啊,哎,这个呢,咱们先去掉,就是这个呢,Return是不是我们想要的。
06:17
你得看一下人家这个API啊,就是这时候呢,如果我们这样写,你肯定是认为啊,执行成功了就是true,执行失败了就是false,是这意思吧,但事实上呢,我们这个方法呢,不是这个意思,你看我们这个return说呢,True什么时候处呢,哎,If the first result is the result set object,就是你首次我们执行的这个结果呢,它得是一个结果集,然后呢,Force的时候呢,就说你不是一个结果集,说你是一个呃增删改的这个update的操作,或者是没有任何结果,没有任何结果的。什么意思?哎,对的啊,这个方法的话呢,我们在这做一个说明,这个方法的这个返回值说如果你是一个查询操作,那么通常都会有结果集,那你要是查询操作呢,就是存处,如果要不是一个查询操作呢,是个增删改操作呢,就是false。
07:12
是这个意思啊,哎,如果执行的是查询操作。啊,这个有返回结果啊则啊这个此方法返回出,哎这是这个啊说诶如果执行的是哎这个增删改操作,哎这个相当于是没有返回结果,诶则此方法诶返回false,所以跟咱们想的不一样啊,咱们希望的话呢,是你这个执行成功了是出,执行失败了是false,所以这块呢,这个方法呢,咱们暂时就先注释掉,不用它了,那我们再换一个。咱们那会呢,讲这个查询的时候呢,咱们调的叫execute query是吧,哎,就是执行的叫查询,你会想说有没有cute update很幸运有。
08:07
就调查,但是还有好几个重彩的,调哪个呢?一定要注意,千万不要掉第二个啊。这第二个方法呢,为什么存在呢?它其实是让我们这个statement那个类去用的啊,不是让咱咱们自己用的,因为呢,咱们这个时候呢,不用再传circleq了,你上面是不是都已经传过circleq了,在这啊,就是我们生成这个prepare statement的时候,我经用过circleq了,所以这块千万不要再传那个带circleq的那个是让我们那个statement去用的啊,所以这样呢,我们就执行了叫update,对于增删改都叫update了。那么这个操作完以后,它返回值是一个int型,Int型看一下返回值说either or或者或者二选一啊,这是第一种情况,是第二种情况说呢,返回的是你,呃,DM2这个操作就咱们这增删改操作呢,你返回的执行以后呢,呃,影响的这个行数。
09:01
比如说你update的操作,咱们说呢,你是可能一下子要修改好多条的,我就给你返回,你到底修改了多少条,删除呢,你也可能是要删除很多条,这就是你到底影响了多少行数据啊,比如删了五条数据,这个返回之是五,或者的话呢,是个零,诶就是相当于你这块呢,没有任何的返回。所以这块呢,我们实际上是可以根据他返回的这个数据来进行判断的,那不妨呢,我这块呢,就直接在这就return一下得了,诶返回这个数,那这块呢,咱们就改成别用波行了,用个in的行吧,更通用一些啊,那这块呢,我们就诶return一个零。哎,就是相当于是你要是没进入我们这个串语句,或者呃,或者说你这块执行出现一些异常的时候呢,相当于你也没有执行成功嘛,诶我就也RETURN0行这个方法写完以后呢,我们在在这块调的时候,我们就可以先接收一下它的这个,哎操作这个行数啊,比如我们就叫做一个inser的一个count。哎,那这时我们就可以判断你这个insert这个count,如果要是大于零,那说明呢,你确实影响过大于一行的数据,说白了就是你添加成功了,诶就这样,然后再来一个L,这家叫添加失败。
10:15
诶是这意思吧,哎,这就可以了,通过这个呢,咱们相当于是对于增删改操作,咱们说呀,如果大家对这个操作的这个,诶这个行数是有诉求的,你可以再调这个方法,如果说呢,我们就想让他去做个执行,你也可以用这个方法,所以这呢也算是咱们的叫方式一关于增删改操作这块。嗯,然后这个呢,相当于是我们这个,诶方式二啊,嗯,这样那这块我来一个return吧,这样他俩有一个,诶算是都是一个并列关系了啊好这个我们就完事了,下边呢来测试。嗯,执行请输入用户名,嗯,输入用户名这块写一个全班同学这U盘是吧。
11:07
这个哎,请输入邮箱留他。嗯,然后呢,126.com。来请输入这个生日,这个呢,格式咱们刚才说过了啊,你写的这个格式呢,只要跟我们这个匹配就行,我就给你自定义一个生日了啊,然后回车,哎,这要添加成功,诶添加成功以后呢,回过来我们这做一个刷新,这就进来了。好,这个呢,是咱们这个题目一,这个大家做的看还有什么问题没有,那就这样来写啊。
我来说两句