00:08
还有。有了吗?
01:35
好了,咱们上课啊,是这样啊,咱们看一看今天咱们讲什么啊,上节上上节课呢,咱们说一下这个是吧,附子窗口的一个通信表格,动态添加和删除,还有JS中字块的一个引号嵌套问题吧,什么单引号啊,嵌套双引号是吧?双引号里边嵌套什么单引号啊,另外的话,双引号嵌到双引号的话得加什么。
02:00
转译吧,双引号先到里边,单引号可以,单引号先到里边双引号行啊,如果双引号签到里边双引号的话,这个转译的啊转义呃,另外呢,咱们来看一看今天的任务啊,咱们今天的。实际上是第几天呀,是咱们项目第几第八天吧,啊,咱们是第九天的内容啊,咱们这个呢要完成。呃,这个系统扩展还是继续扩展啊。咱们这个扩展呢,主要是扩展两个东西,一个是MVC架构模式,另外一个呢,就是关于这个XML啊,咱们不是昨天刚刚做完那个模块吗?是吧,模块做完了我们要扩展,那么扩展的话呢,今天呢,这个距距离就拉开了啊,咱们这个SM的讲不着。啊,今天呢没有时间讲,所以这样的话,咱们这个课程又又回去了,又又跟这个一样了啊所以这边呢Mac呢,我讲详细一些,我讲一天啊,我把MC讲讲讲成一天,把时间拉的长一些,然后呢讲的东西稍微多一些。
03:08
然后呢,这个呢一定要掌握啊,因为这个很重要啊,后期呢,咱们做所有的项目都是使用Mac架构模式去完成的,另外你在工作过程中也是一样啊呃,都是使用m Mac架构模式去完成的,你不可能在用原先的S里边干什么呀,填数据库。你那连属于物是吧,一般都不这么做,你另外你是不是在server light里边是不是也就控制业务了,银行转账有银行转账业务,反正就是在里边控制的啊,所以咱们今天呢,讲一讲Mac架构模式,这个S面呢,咱们到呃。讲完这个才行啊,这个今天讲不着了,这个行了,知道这个安排就行了啊,简单提一提,呃,下边这个呢,我们到时候再说吧,啊,现在先不用看啊,什么直接讲MVC呢,你都不知道在干什么啊,所以这边我先写个例子再说。
04:00
OK。嗯。行,这个项目呢,咱们就暂时先不看了啊,然后这边呢,咱们就建一个项目吧,来。呃,这个项目呢,咱们建外B项目啊,然后呢,我写上叫做MAC啊B,我以这个银行的这个例子,银行转账的例子来讲一下这个m Mac啊,银行转账就是账户之间怎么去转账。
05:14
我们一起来看一看,这边这个项目呢,咱们就加个零一吧,啊,这块加个零一,我可能会多写几个。别零了啊,就一吧啊,然后这边呢,我就写成换个名字啊,叫B吧,行吧啊叫半啊好,你要看到这个就知道这是在讲m Mac啊,我说一下啊,MVC呢,这个东西啊,我讲的是独立的用这个项目跟我们一级OV项目是没有关系的,我直接用这个独立的项目去讲这个知识点,然后呢,今天如果能MC讲完,咱们最后的时候再应用到一个EGOV项目中,行吧,是这样一个过程啊。好了,那咱们就还是选择1.4吧啊finish no啊还是no就行了,来我们这边呢,点右键啊,我先去建一个文件吧,这个文件呢,我们写上read me啊。
06:05
点T好了,在这个文件中呢,我是这样啊,使用银行转账的例子啊,当前当前项目啊,不使用MVC架构模式。不使用明白了吧,分析啊,一起来分析一下这个分析项目存在的缺点。另外呢,还需要分析一下啊,另外分析当前项目中的serve light负责了哪些事情啊,负责了哪些事情啊,这个吧,负责哪些事情,分析这个啊,主要呢,当前这个项目就是解决这个问题的,就是现在呢,MVC这个东西我还没有讲,但是呢,这个版本啊,我先不使用Mac写一个东西,写一下银行转账。
07:06
啊,然后你分析一下呢,我写完之后呢,我希望大家呢,有同学能够分析出来啊。我到时候找同学说一下,那你觉得这个项目存在什么样的缺点啊,只有你知道了这个缺点,那你才知道MVC呢,它存在样的优点啊,那你要不知道这缺点,直接说这个他有什么什么好的,什么什好的可能体会不出来。啊,所以呢,分析项目中的这个存在缺点,以及分析我们当前项目中light它负责的哪些事情啊,我们一起来做一个银行转账的啊,以银行转账为例啊,以银行账户转账啊为例啊,这样说吧。好了,那咱们就来看一下那银行转账大家思路是什么样的呀。最起码打开一个网页吧,比如说然后咱们简单点啊,简单的没没那么复杂,咱们有一个表单是吧,有一个转出的账号。
08:04
对吧,你把这个账号写上去吧,后边什么户名啊是吧,咱们就没那么复杂啊,咱们直接账号后面呢,又来个框,这个框呢是转入账号是吧,然后第三个这两个框叫转账什么金额啊,1万啊2万啊是吧?啊接下来一点转账是这意思吧,一点转账就转了。由转出的。账户有转入的,账户有转账的金额。这就够了,所以说底层是不是得有张表是吧?底层那张表啊,所以咱们先建表吧,其他事先不用管,先建表吧,咱们先啊,来咱们建张表吧,这个表的话,咱们就以银行账户以为例吧,咱们来做table啊,Key account这张表实际上这上面有有是吧,来建一下啊呃,这个表呢,咱们里边给上那个账号吧,啊往下to。
09:01
给他把菜吧。给法插图啊,Primary可以组建吧,咱们啊,嗯,再给上去一个balance啊余额,Balance余额啊,这是账号,然后呢,余额呢。咱们用一个十个号二行了啊。就这么着吧,啊,咱们呢,这边呢,Insert into t account这张表values啊,我们插入数据这个account number一个balance一个,这边呢,咱们账号呢,简单写了A-001这个账户吧,然后呢,往这个账户里边呢,有有多少钱呢?咱们比如说5万块钱吧,啊了之后呢,再来一个啊,这个可能有1万块钱吧,完了之后呢,就在这commit啊提交collect from tea Yoga查询一下,行了,这么着吧,接下来呢,咱们看一下,嗯呃,这个database是有了是吧,有了之后呢,咱们把这个打开,是这个吧。
10:02
IP100啊,然后呢,选上这张表有没有啊。诶有是吧,创了一下是吧,插入数据查询啊,我们这个。啊。目的。这怎么写?这个再来一遍,走。啊。有了吧,有了吧。有了吧。得了啊,这么着吧,然后咱们就在这画一个表单呗,画个表单啊,咱们先画个表单,这边的话我就还是把它删了吧,啊,重新写一下得了。
11:03
然后这边呢,我来,嗯,写上啊是账户转账来这边我给给一个放表单,这边呢写上去一个request.get是吧,啊叫transfer对吧,转账transfer。转账。这边呢,Method咱们就用post就行了啊,这呢有一个转出账,转出账户吧,转入账户啊,转账金额行不行,就给这么几个吧,我看行不行啊type类型,然后呢,Name咱们叫。转出的话就叫from啊,然后呢,转出账户是是啥来这个不能随便写吧,数据库里边叫啥什么杠零零。
12:06
001是吧。然后呢?转入账户的账号得写上吧,是二吧,转账金额的话,我我看看怎么写啊,写上那个叫来这个改一改给复制two啊这个写成什么?转账金额是money是吧,Money的话就比如说转账1万行行吗?来这边呢,我写上一个啊类型什么类型啊sub是吧,Value就是写上转账了啊这边呢,我就换个行吧啊换个行好看点啊好了,就这么着吧,我先看一下这个页面行不行啊,不行再说吧,啊我这数据看看没问题吧。零一零二五万一万,整个表都建好了,数据都有啊,另外呢,页面也准备好了,就点转账,我一点转账就执行这个了,发送这个这个这个吧。
13:08
我先部署一下啊,我先打开看一下行不行,不行我再改吧,OK,能不能表达清楚我的意思啊来。行啊齐了啊,那这边呢,咱们来打开浏览器吧,咱们直接输入bank来访问一下啊呃,这边呢,是一个。嗯,127杠是吧。那就这么着吧啊,转出转入转账金额一点转账啊,就走这个吧。行,那这样的话,咱们就可以开始底写底层的了啊写这个。
14:01
那咱们应该打开配置文件,在配置文件里边呢,我们写上这个类就可以了,还是那句话,当前呢,不使用MC架构模式来分析项目存在的缺点就行了啊,来serve name加上一个serve map加上一个,Name加上一个啊。这边呢,咱们把路径贴过来,然后把这个复制一下放到这,放到这这边咱们看点北樱花那个点放啊呃,S叫transfer s转账的一个S行就是这样,那这样的话,这个包呢,咱们得建议下。来煎一下包。这个类呢,咱们得见一下啊。咱们得见一下这个类。继承是吧,HTB。
15:03
啊。我们一起来看一看啊,点它发送请求执行这个类,完成银行转账,完成账户。转账啊,账户转账还是这样啊,分析存在的缺点。分析一下负责了哪些事情?第二个就是分析这样编程存在哪些缺点啊,就是说不使用m Mac,不使用MVC架构模式啊,一会找同学说一下啊,看能不能总结出来,这边呢点右键啊,我就S吧,然后呢,我就生成一个叫do pose的方法,还是老规矩吧,啊就这么写吧。
16:01
这个request是吧,Response呗,接下来呢,我们在这呢,写写啊写一写。这边呢,应该怎么写这个思路。这个思路应该是什么样的这个思路。对对对,先肯定得先获取什么,获取转账相关的信息是吧,那这个时候咱们写一写吧先啊转账信息的话,像这个什么类型的,From account什么number是吧?嗯,这个得拿一下,这是转出账号嘛,Request get parameter嘛,是吧,这边呢叫来看看吧,啊别写错了。然后呢,把这个复制一下。然后不是有这个吗?对吧,吐嘛,你就吐就行啊。
17:03
下边呢,咱们有一个什么呀,金额是吧?啊money把这个钱拿过来啊,放到这就行了,放到这就可以了,但是我们希望这是double的啊,这怎么写啊,double.pass double是吧。这不都学过吗?转吗转型好就这么写了啊,注意啊,这别改了,你看我这边Y6都写死了嘛,是吧,嗯。Y都写死了啊,我以后这样吧,我加个read only得了,省得到时候改啊。所以改了之后可能会出问题来,都加上啊,只读的你不能改啊,反正就是底层一共5万块钱啊,你看数据转转转不够了怎么办?回头把这个SQL文件再什么再执行一遍,钱要够了啊。行吧,接下来第二步大家想一想应该怎么做呀,获取转账相关的信息了,你接下来你你你你怎么怎么办呀,就开始转账呗,开始转账就是连接数据库吧,啊连接数据库,那连接数据库的话,那这块是不是需要工具类呀,这样吧,工具类不行,我从这拷一下得了,我也不写了啊拷一下吧,啊上面不是有工具类吗?就是这个啊,我拿过来。
18:22
嗯,拿过来在这用一下,这边呢,我就建个包吧,啊叫come点给not点棒点U啊贴过来。好,那这样的话,咱看一看这边是不是应该改一改啊,咱们就在那个叫什么Scott用户里边是吧,开啊密码行了,就这样吧。呃,那这边呢,我我就写成local host比较好是吧,到时候你们下载是不是也不用改这个了是吧,Local啊。
19:03
写这个得了啊呃,接下来我就开始啊,Connection。嗯,Prepared statement,诶是不是得查那个余额够不够啊。余额够的话才能转账嘛,余额不够你转啥是吧,所以说咱们得有个result that是吧,啊result that啊也肯定得查余额够不够啊,你不能说余额都不够你这转。一转的直都成负的了是吧。来。这边怎么写啊。Connection BB是吧,点get,大家想一想,这个应不应该放在一个事物中啊,需要吧,哎,你需要放在一个事物里边啊,B to.close啊,所以这个时候呢,你要考虑清楚的,在这边为了保证数据的安全,你DB to点什么呢?叫d in了啊d Du就点什么呢,Commit了,那这边呢,遇到一层DB点什么roll back了,那遇到这的话,咱们DB to点什么呢?In了啊,只有结束了,这样的话,中间这个位置才能开始什么转账啊,能在这转账。
20:17
所以这边呢。咱们写一写这个这个这个有业务吗?核心业务是吧,是这意思吧,核心业务怎么写。核心业务啊,这段代码灵活性最强,因为跟业务相关嘛,是吧,银行是这么写的啊,证券的可能是另外的没有这个功能啊,可能是另外的一些业务吧。首先呢,我们得查一查这个账户它的余额够不够,所以这个时候得写一个什么语句,我们得查询转出账户的余额。
21:00
嗯。Select。Balance是吧?这张表外条件是。Count number是这个字段吗?没错,是吧,等于问二的对吧?接下来你是不是就可以编译这个搜索语句了,你编译完之后是不是就可以给它赋值了,所以你给它赋一个值啊,你这边的账号呢,它是一个字符串啊,所以3STRING就行了。你要查询的是转出账户的余额对吧,所以这边的话应该是把这个变量里边保存的那个值付给这个问号了,所以你就写到这就行了。然后呢,接下来是不是查询返回结果集啊,那就返回结果集了,返回结果集如果结果集中有数据呢。
22:03
如果结中有数据是吧,RS点该什么double吧啊该double拿谁呀,拿余额呗,啊这样的话,咱们把这个余额拿出来,拿出来之后呢,它就会返回一个什么呀,Double吧啊double叫叫什么叫balance,什么balance。The forum。Account啊,转出账户。之前的啊余额。或者加一个balance也行,转出账户的之前的余额。是这个值吧,T恤吧。这样的话就得就读取。转出账户的账,转出账户在转账之前的什么余额了吧,那就拿到了,拿到余额之后判断吧,判断余额是否充足吧。
23:04
判断啊,来判断余额是否充足。怎么判断呀,如果这个from,什么account before,什么balance,要是大于等于就行了啊,咱们简单写一写业务啊,就说它里边一共是100块钱,你让他转1万块钱,他肯定转不了。是吧,那所以它要是大于等于这个money的话,这说明能转吗?这说明充足是吧?能转啊else吗?代表余额不足吧,啊代表余额不足啊转账失败啊转账失败,所以这个时候呢,咱们就给这个转账结果赋一个值吧,所以在这呢,我给一个值啊给一个不呃,别给个官类型了,给个。改个类型了啊,叫transfer result。
24:01
默认值呢,我看给个几啊。问,值就给个零。我先给个零吧,啊,如果这个transfer result呢,它呢。等于负一就表示什么意思啊。余额不足,转账失败,行吧?这能理解吗?嗯,好,那这样的话,如果这个条件成立呢,咱们就能转账,要是能转账怎么转呀。都连了啊,现在都连水功能。能转的话,你想一想是不是就是将将哪个将from account啊,或者将转出账户吧,将转出账户啊呃,余额修改为。
25:03
我直接修改就行了啊,将转出账户的余额修改。余额减去吧,啊,余额减去。怎么写啊?需要一个搜索语句吗?LG的搜索。它应该是有一个double吧,叫before count before from count before balance,我就改成什么。After balance等于什么?等于before balance,它大于等于它能减吧,所以你就减去谁就行了,Money吧,现在你得出的这个值是不是这个余额啊,拿到余额之后,你这先写个搜索语句吧,啊,这个搜索语句update。T下滑线count s balance等于问号是吧?Where,条件是。
26:07
Count number等于问号是不是你修改哪个账户的余额呀?啊,修改哪个账户的余额?来,咱们给第一个问号赋值,第一个问号是什么?看清楚,第一个问号是balance余额,所以你要给它赋值,重新获取编译,把这个S编译完之后,调set double给第一个set double。给第一个问号,负什么值?是这个吧,但是你别忘了给第二个问号是什么,是给哪个账户改的?Set string是from吧,是不是给这个from账户,你改的是这个吧,跟这个有关系吗?没有啊,改的是这个。嗯,拿过来,然后接下来是不是就可以点一了update吧,哎,Update,那这样的话,你能不能把这个值让他接受一下,让他干什么呀。
27:11
加的行吧。这大家能看懂吗?就再捋捋啊,拿信息连接数据库。核心业务就是拿余,拿这个叫什么,就是余额吧,啊拿到余额之后呢,判断余额够不够,够的话咱就开始转,减去钱,执行一个R语句啊,给括号赋值赋值,然后开始转,这就转完了吧,钱减去了吗?已经减去了吧,然后干什么将转入吧账户的余额修改了,这是余额加上吧啊,这是余额加上啊,余额加上怎么写这个。
28:26
嗯。所以这个时候咱们再查一查这个这个这个余额,就是这个账户是不是也有余额,把余额查出来之后,是不是让他加上一个值,再付这个问号吧,咱们得得附个这个问号啊,把这个问号赋值就行了,所以这个时候的话,咱们在上面趁这个词后语句吧,咱们还是在这写就行了啊呃,结果及的ex query查询。
29:02
等于他。RS next。那这边怎么办呀?等于点prepare,把谁拿过来?把这个词后语句拿过来对吧。这个SQL语句拿过来之后呢,记住啊,你看你现在这个SQL语句指向的是谁,是这个S语句吧,那这个时候呢,是不是叫三词要赋值了,连哪个赋值。只有一个问号,所以给这个问号负什么值就行,这个值你要注意啊,你看这负的是这个,所以咱们这也负谁呀,是不是to啊,To就行了啊付过来,那这样的话呢,附上去之后有没有结果集就有了吧,有了结果集之后你就判断了,如果结果集点next,那这样的话是不是就RS.get double是吧,拿一个拿一个什么呀。
30:00
Balance吧,拿它因为上面有balance,这个时候呢,返回什么,这个返回double吗。这个返回double,我也返回double,我从这把它复制一下行不行,那这个时候呢,接过来,接过来之后呢,这边植物改成什么to吧是吧,这是什么余额。转入账户在转账之前的余额吧,转入啊转入转入账户在转账之前的余额拿到了,余额拿到之后呢。转入账户转账之后的余额吧,转入账户转账之后的余额,它应该是等于double to account before balance改成什么?After balance是吧,叫after balance等于什么?等于你现在这个before啊,他要是加上什么money,加上之后呢,接下来就是可以转账了吧,转账啊。
31:08
嗯,转账,所以这个时候呢,要不要重新再过去一下。需要重新获取它指向这条词后语句吧?所以connection.prepare编译这条词后语句还是这条词语句,要给这词汇语句赋两个值,第一个值来赋值掉set doubleble吧,Set doubleble,第S掉set doubleble啊,给一个问号负什么值?After balance是吧?然后给第二个问号,负什么值?Set第二个问号负的值是这个转出账户,所以转出账户呢是to。Account number吧,附上附上之后呢,是不是就可以转了,转的话点update吧,那这个时候是不是让他再加上这个就行了。是不是加等啊,转账结果嘛,是吧,那这样的话就转账完了吧,最后呢,有几个结果,如果transfer results t是等于等于负一的话,Else if,如果这个transfer result要是等于等于二的话,这个结果。
32:23
是一个结果。如果transfer等于等于负一,这说明什么转账失败啊,由于余额不足是吧?这边呢表示转账成功,下边表示什么转账失败啊,未知原因。但是你必须得告诉他啊,必须得告诉用户,反正是转账失败了,这个钱呢是没有丢的,你要是不信的话,你看一看是吧,我得提醒一下,要是没有提醒的话,最后哎,成功了还是失败了,这我都不知道吧,尤其涉及到钱的问题啊,这个很敏感,所以咱们这个最好要有提醒,来屡捋这个思路啊,第一步啊是获取到转账信息。
33:09
是吧,什么转出账号啊,转入账号啊,转账多少钱是吧,然后往下的话,大家看一看,开始连接数据库吧,首先我在这定义那个转账的结果。我默认值是零。你想一想,当它等于二的时候,是不是执行了两条二?是不是都成功了,那就是成功了,等于负一的话,我就认为它是余额不足了,等于其他值的话,那你肯定就错了,如果等于其他值的话。咱们往下拿到连接开启事物,一定要开启事物啊,开启事物在这边最后结束的时候我们干什么呀?提交事务,提交事务。啊,提交事务回滚事务吧,回滚事务结束事物。
34:09
那这边中间这样的业务我写了叫核心业务,这个核心业务是呢,首先第一个得查询转出账户的余额,拿到余额之后呢,我判断这个余额是否大于等于money,如果大于等于money,你想这个大于等于money成立之后,是不是才会走大号里面的东西,如果这个要是不成立的话,是不是就走L分支了,Else,分支一走,那么程序是不是就结束了,是不是就转账失败了,所以这个数据不好,不受任何影响了啊,然后再往下走呢,这个时候呢,我们这个账户减去money。这个from account before balance,减去它得出一个转账之后的余额,然后就开始更新了,更新完之后呢,我又拿到什么?第二个那个叫转入账户吧,拿到转入账户的余额之后呢,我就加上这个钱,之后呢,我就给他更新嘛。
35:02
能看懂吗?这应该问题不是很大啊来,最后呢,我这样做,response.side comp type,然后呢,这边写上test HTML star site等于TD18030,然后接下来respond有个方法叫get write是吧,返回一个print write out,好,这边拿过来之后我们就来看一看,这边呢,out.print打印输出吧,输出什么?这个啊,我简单写一写HTML吧,然后这边呢,写上去个杠啊,然后再继续输出一个什么呀,Head吧,啊,输出一个head啊好了,这边呢,我看一看,再输出一个head,结束吧,然后这边我再输出一个title吧,Title啊好,写上title好了,这边呢,我就加一个title好了,这边我写上去是一个转。
36:03
张结果行不行,这边呢,我继续啊,我加一个什么呢,Body吧,加一个body啊好了,这边呢,我们就是动态的了啊,所以把这个东西给它剪了,放到最后,然后咱们在这边就可以动态的输出内容了,比如说这就out.print打印输出什么,那这写个h he啊,一定要醒目啊,这个东西不醒目不好啊,Color颜色红色吧啊,咱们这边的话就写上一个放。啊,这个这个里边没有一个属性啊,有一个a line居中了啊center这边呢写一个杠标签,这边我写一个quarter啊,这边写上去是一个转账或余额不足,转账失败是吧?叫余额不足啊,转账失败我把这个复制一下放到这,转账成功的话,我就给他换个颜色啊,环保颜色是吧,叫转账成功啊,然后呢,这边呢,转账失败未知原因啊,转账失败未知原因这边还是红色得了啊。
37:20
行,就这么着吧。我看一下啊,这边呢,我就简单的来给他部署一下,看最基本的功能能不能完成。把服务器启动一下。启动之后呢,我打开它,打开它之后呢,我来访问了啊,我这边呢,写上去这个叫什么127.0.0.1上半是吧,好了大家看啊,我要转账了啊走。啊,有问题,驱动没有是吧,所以这边呢,咱们把驱动拿一下啊,这个没关系,找一找就行了,Oracle是吧。
38:02
这个啊。然后有个勾DDC吧。这边的啊,把这个咱复制一下给他放过来。行了,转账失败,未知原因啊。所以这边呢,咱们就给它放过来呗。然后呢,把这个。把这个项目啊,给他给他部署一下啊,然后呢,把服务器再起一下啊。这数据没事儿吧。那打开不是打开它啊,打开这个磁,然后把它执行一下这个啊执行一下来走。然后接下来我们看啊回退刷新点。成功了,这个数据有事吗?查一下。是吧,那这个时候如果我说我说后退啊,我说再转一下子又成功了吧,那这个时候再查一下啊,是吧,那我再转吧,再转我再转一下。
39:02
嗯,成功了,这个咱们再查一查是吧,我我我我再转一下是吧,我再转一下,嗯,又成功了,我再查一查是吧,还能转吧,再转一下啊又成功了,我再查一查好了。那还能转吗?不能了吧,嗯,那你肯定再转你就失败了啊,所以这个时候呢,数据呢,是没有没有不受什么影响的。是这意思吧,这个大概呢,大家能看明白是吧。呃,这个项目啊,我强调一下,不是为了讲这个银行转账的业务,银行转账的业务要比这个复杂很多。它就中间有很多安全的控制,明白吧,很多安全的控制啊,咱们现在的话就是简单,主要不是讲这个啊,主要是为了讲这个东西。总之呢,从早上到现在吧,我也没讲什么东西啊,就写了一个银行两个账户之间转账,一个减去钱,一个往里边加钱,余额要是不够的话不能转是吧,反正就是做了一个控制吧,那这样的话,大家看啊,当前我写的这个serve light,我是不是所有的事情都是在这个serve light里边完成的,然后大家分析一下斯完成了哪些事情。
40:19
我当前的项目确实没有使用啊,什么MVC架构模式我根本就没有用,我们一直用的,大家想一想是不是我们前几天一直用的方式啊,都是往里边写的所有的东西啊,分析存在哪些缺点。或者说首先看这个吧,他分析他负责了哪些事情。第一件事是什么对吧?他又负责什么是吧?他又负责什么啊?他又负责什么,他又负责什么是吧?他负责什么,哪些事情啊?是吧,你得分析出来呀。重点别关心这个业务啊,这个业务可能还有点问题啊,重点看分析以下SL负责了哪些事情。
41:01
找个同学说一下啊,看能不能说上来,呃,这个。杨洁。你说一下就是你觉得这个现在你就是你经过你的观察是吧,这个现在这个里边这个这个这个这这都这都这都他负责哪些事情啊。肯定得能说出来一个吧。哎,小姐怎么不说话了?刘杰。嗯,对,你看这不有了吗?就是连接数据库啊是吧,连接数据库还有吗。
42:02
啊哦,获取转账相关信息呗,啊,这个就是数据的什么啊,这个专业一些啊,这叫数据的接收啊,数据的接收,或者我们还有一个词叫数据的输入啊,数据的输入,数据的接收,好还有。那能不能更专业一些,跟你说不专业呀,你总总觉得能不能再再高一层啊。你看你分析的很好,第一个连接数据库是吧,操作数据库中的数据。啊,也就是什么代码啊JDBC呀是吧,数据的接收还有吗。
43:04
就是你刚才所说的余额不足什么的,那叫那叫什么代码啊,这叫啥代码。对他还处理负责什么,他负责数连接数据库啊,他负责数据的输入啊,他负责什么东西啊,业务逻辑的处理吧,业务逻辑的处理还有吗?他负责什么。啊。反馈结果啊,你说反馈结果说点这个是吧,那这个你就专业一些啊,这个怎么说呢。这叫。页面的展示。啊,这页面的展示啊,另外前面的更专业叫数据的什么输出,有数据输出有数据输入嘛,那这个时候我我我我掉个个啊调个个吧,这个东西我给它剪了啊,这个我放到哪放到中间这了啊,然后呢,我把这个改成一,这个改成二。
44:16
负责数据的输入,负责数据的输出,负责连接数据库GDBC的处理,还负责业务逻辑的处理,他是不是负责这么多事情啊,那么违背了什么呀?结论是什么?结论是违背了啊,高内聚低耦合。这很官方是吧?低耦合的开发原则,高内距指的是要更加的什么专业啊高内聚。刚那句表示什么呢?表示更加的独立,更加的什么呢?专业啊,只做某一件事情啊,只完成某一件事情即可,只有高内句表独立了啊,只有高内句满足了是吧,更加什么独立了。
45:20
才能做到什么解耦合嘛,是吧,解耦合啊,或者低耦合做到低耦合度。开放。那有同学说这我就围着刚那句丢了又咋了?你违背了之后不能重用吗?能重用吗?注意啊,违背了高内距。第耦合开发原则之后组建的什么性差,独立性差是吧?组件的独立性差导致什么复用性差,开发效率很低啊。
46:19
扩展力是不是就差了啊,耦合度高,扩展力差啊,扩展力差。违背刚刚那句第和开发原则组建的独立性差,你想一想,我问你啊,就像这种查询余额这种东西,你你你在这用了,你将来有没有可能还在其他的程序中,也需要查询一个账户的余额,那你想银行的业务很多呀,我今天我发工资了,对吧,我就去银行查一下,查一下我账户里边进钱没进钱我不转账啊。是吧,或者说或或者说大家想一想这个啊啊的语句有没有可能在其他的业务里面用啊。
47:02
那今天我我可能只是取款,我不转账啊。我取款是不是就执行一条update语句啊,我今天可能不取款也不转账,我可能去银行就是查一下账户,查一下余额,我去我去at atm机上一查,我可能底层就是直行select,所以大家想想像这种select语句呀,像这种update语句是不是应该更加独立性,独立到某一个类里边,这个独立到某个类里边,将来的话,我们是不是可以直接调用这个对象里面的这个方法。这样的话,这个是不是就可以重复使用了,那你现在你看一看,你是不是把所有的东西都交给这个责代去完成了,就像这个人又做医生,又是什么当兵的,又是战士是吧,又是什么什么教士啊,各方面全才嘛,是吧,那你这个人没了,这多受损啊,是吧。是这意思吧,很受损呐,就我们说了,公司里面这个人既是销售,又做销售,又做售前,又做售后,又是实施。
48:02
你又是什么技术支持的?又是软件工程师还是高级的是吗?你就说了,今天你生病了,你没来那公司就缺了一大块啊,是吧,不能这样,你以为这高内句啊?不专业呀,你不是干某一件事情,你关联的事情太多了,你关联的事情范围越大,你受损的犯,呃,那个受损的这个程度就越越严重吗。所以我们开发也是这样啊,要讲究一种就是高内距,什么意思,内存条你你不要跟那个融到主板上。我我将来我两个G内存条不够了,你说我板子就不能用了。你说把内存条,我内存融到板子上行不行啊,这种技术能实现吗?可以啊,我把那个它融到板子上,板板子就是块死的,板子上任何插头都没有。插显卡插不上,没有没有显卡它集成进去了,内存条没有,你想我把什么内存条啊,把什么显卡呀,全充到一个板上,是不是现在就就相当于我们这个搜来点啊,滚们头上是不是把所有的事全包了,全包了他连最后的页面展示都没有交给GSB自己做的。
49:11
看见了吧,所以叉复制的事情太多了,就像我们所说的,你想一想,主板那块东西是死的,你怎么扩展,你连个插槽都没有,怎么你怎么扩展。现在操作系统升升到WIN8了,或者是更高的一个操作系统了,那你这个主板就废了,就不能用了。但是现在科技不是这样的,现在科技说内存条这种东西能扩展,咱独立出来,这就遵守了什么高内句啊,那我问你内存条光光在只只只在你这台计算机上用吗?别的计算机上能用的我能换呀,就像你现在这个东西你就不行了,你这个东西全写死了,你没有一个明确的分工吗?是不是没有明确的分工,你一个人负责的所有的事情吗?
50:00
这样的话,你的耦合度就很高了,耦合度高,扩展力差,组件的独立性差,组件的复用性就差了。就这个意思,就所以说嗯,六个字啊,叫高内聚低耦合,我说一下这六个字呢,前三个跟后三个是相辅相成的,你只要达到高内距,它必然是低耦格,你要想达到低耦格,它必然先满足高内距才行。能理解这意思吧?那这是一个软件的开发原则,这也不好理解啊。那就像我刚才举举举的那几个例子是吧,那公司的职员啊,又是主板这个那的,你好好想想能不能想明白啊,这个如果高年级低构课的开发原则想不明白,我讲m Mac也白讲。你就不知道我在讲什么,其实我想说明一件事啊,比如说啊,我有有有一个人啊,有一个人,他这个人呢,可能是嗯,做销售,他可能兼多多个职位啊,他可能销售,他可能是开发,他也可能是测试人员,他也也可能是什么呀,也可能是我们的一个售前吧,啊等等,那这样的话,哎,公司领导啊,很明智,他不这么干了,为什么呢?因为他吃过亏呀。
51:06
是吧,可怎么办了,这么着吧,我我多花点钱吧,啊,我我请四个人得了,一个人做什么销售,一个人做什么呀,开发一个人做什么呀,售前是吧,一个人做测试吧,那这样的话是不是分工明确了,那我问你啊,这样的话是不是你先人的范围就少一些,比如说你中间可能一个人出问题,你整个项目的团队可能不受什么太大的影响。是这个意思吧,其实就是为了降低耦合。高内聚指的是这个人更专业吧,这个人不专业吧?这个人他做的事情太多了,他违背高那句低有可能。其实就是说白了,想一个很好的什么明确的分工吧,想有一个明确的分工啊,想有个明确的分工,违背了这个,违违背了那个啊是这样,这样变成存在的缺点,这个缺点呢,我在上面已经什么呢,已经说了啊,违背了什么,违背了什么。
52:01
大概呢,是这个意思。这样呢?我写到,这违背了高内低和开发原则。当那句表示。更加独立,更加专业,只完成某件事情即可,只有高内距满足了啊,更加独立了,才能做到低耦合开发。违背了高内低五开发原则,组建独立性大,复用性差,开发效率低,耦合度高,扩展率差,其实说白了啊,就是整个项目啊,整个项目或者整个serve没有明确的什么,没有明确的,或者整个web系统啊,整个web系统没有明确的分工协作啊,没有明确的分工。就是B系统的职能分工,Web系统的职能分工没有明确啊,职能分工没有明确。
53:09
现在的这个程序,它既负责数据的输入,又负责连接数据库,又负责业务逻辑的处理,又负责页面的展示。他负责了很多事情,那大家想想,最起码我们现在不会做这么差。我们现在呢,最起码你是不是应该知道,把这个东西独立出来放到JSP里边,JSP是不是是不是就相当于这个是一个人,这个人是专门干什么的。那就是view啊,就是做页面展示的呀,是吧,这就独立出去了,就像我说的那个销售人员,我就独立出理去了,他就专门做销售,你要做销售你就专门做销售,你不要一会做销售,一会一会做开发,还一会儿做测试,是吧,所以这个时候就独立出去了,那大家想一想,还有什么东西可以独立出去啊,业务能不能独立出去。我独立写一个类,这个类专门处理业务,其他事都不管。
54:02
只处理业务吧,那我问你是不是可以再来一个类干什么,专门做数据库操作呀,数据库操作无非就是CD吧,嗯,CDCD是什么呀?哎,解释一下啊,CD呢指的是C是create。啊,Create表示增啊create是不是创建啊,啊create啊创建。C优的是什么呀?Update啊update。然后这是改嘛,D是什么呀?Delete啊delete这是山吧,而是什么呀。啊,这个不是read啊,这个是retrieve。Retri呢,表示是什么意思啊,是检索啊,就是。查。
55:00
增删改查吗?增删改查c rud,我说啊,这个面试官呢,可能他不会说增删增删改查,面试官可能会问你什么c rud的组件,你用过哪些呀。C rud的一个什么框架,你都用过哪些啊,他其实说的是JDBC的一些底层的框架,你用过哪些,什么TC啊,什么hi呀,是吧,这些东西。什么纯GDDC啊,CD,他可能会说这个。啊,所以这个要知道c rud长它的意思。来这边我写一下啊。呃,CD。啊啊,C指的是增加吧啊。啊指的是什么?Retrieve吧retrieve,啊表示读取。其实是检索的意思啊,检索。
56:02
然后U指的是update d指的是delete card。能记住这个吧啊c rud指的是增长奶茶。啊,只能来查。CD啊。好,这个知道就行了,咱们这个rere是吧,Rere。检索吧,啊是检索的意思啊,检索是吧,知道这个就行了啊。好了,咱们第一节课呢,就到这儿吧,讲了一个理论啊,大家先休息一下吧,下节课我们再继续啊。
我来说两句