00:02
啊,这个前端啊,咱们差不多了,那接下来呢,我们来写这个后台啊。好,咱们多了一个,是不是叫这个四点度对吧。好来这个叫执行市场活动的这个啊添加。操作啊啊,这个注释呢,我给它写成了以system out的这种形式啊,啊为了在我们控制台上展现一下这个方法,就证明已经进入到这个方法了,OK吧,好,那么我们现在啊,需要把所有的这个参数给他接收一下啊。首先咱们还是把这个相应的字段信息给它粘过来,对吧,好。
01:07
啊。首先咱们来。好,再来,等于什么request.get。Parameter。好,首先我们来观察一下这个ID啊,同学们啊,这不是我们从前端。拿的这个参数啊,应该是用UUID的这个工具给它升一个对吧,U u ID u get一个UID拿到一个32位的这个随机串,那其他的这个字段信息呢,我们从这个前端的这个key中拿到就可以了,对吧,好owner your name。好,再来开始的,这个日期结束的。日期好cost成本好description啊这个描述好,创建人创建时间,修改人修改时间,其中咱们没有修改人修改时间对吧?好,那么咱们这个创建时间应该是什么呢?创建时间应该是我们的当前的系统时间吧,系统时间好,所以说咱们还是用工具来生就行了啊,来一个data。
02:28
Time you get system OK吧,创建人呢?创建人应该是当前登录的这个用户,是这样吗?好。那当前登录用户,咱们得肯定从这个session里边取啊,Session里边取。再从什么。啊,从这个user里边取这个name对吧?好,所以说我们先来一个request get。
03:02
Session,对吧,再来get attribute取这个user,好,那么取完这个user之后,咱们是不是应该给它强转成这个user类型对吧?好,最后咱们从这个user里边调一个get。内啊,那以后啊,我们每一个模块都要做这个添加操作啊,那这两项咱们就不写了啊,直接给他扔到。啊,我们这个test里面行吗。包括修改人和修改时间,是不是也是这种写法?对吧,行,那现在我们参数拿到了,那接下来我们该干活了,那这回是属于我们市场活动相关的业务了,很明显是activity。Service,没错吧,好,等于service factory get service,扭出来一个activity service。
04:05
好,这还没有个提示啊,再多写一写activity service m PL是这个吧,好。来强转一下as,咱们调一个save,那大家注意我们要不要把这些所有的字段信息。都给他传起来。是不是很麻烦呢?一个是啊麻烦,再一个是不是非常难以管理啊owner啊参数太多了,对不对啊,你看其实现在还好,它这个参数也是在十个一里,那将来咱们这个参数如果二三十个。你要维护一个参数,你还得用这个人工肉眼去数第几个参数,对吧?好,所以说啊,我们一定要将这些个什么呢?杂乱无章的参数给它封装到一个市场活动的对象当中,方便管理,是这样吗?好,我们来一个。
05:01
啊。Activity。A点咱们set啊。Set。Cost好,A点往下翻啊。Start date,它这个idea的工具,它不是按顺序来的啊,你写完的它往上边列,看到没,没写的往下边列啊好,咱们来。Name,好,再来a.set这个and date a set怎么艾没有吧?Description a set current time a set。对,全了吧,好,那么我们会看到啊,我们在这个控制器里边,其实两个地方啊,啊是比较麻烦的,一个是什么呢?Request get perter里接收这些参数对不对,还有一个是需要将我们这些参数给他。
06:13
啊,Set down。我刚才点什么呢?啊,给它set到我们这个A对象当中,是这样吗?很麻烦,那是因为我们现在用的这个技术叫做什么呢?叫做so that OK吧,如果你用的是S啊,我们没有现在没有用任何的这个表现层的这个框架啊,那就只能这么做,OK吧,除非你自己封装一套什么呢?啊,这个反射的这种机制,或者是L流,咱们用这个文件升一个升一组这个set其实也可以OK吧,但是呢。我们现在啊,得给他写的麻烦一些,你没有经历这个阶段的这个苦,你就尝不到下个阶段使用spring mvc的OK吗?好,所以说啊,将来你在学习完这个买白啊,这个spring mvc之后啊,这些所有的这个操作啊,其实都是由spring mvc这个框架帮我们做的,OK吧,好行,在这里边啊,咱们来as调一个C,咱们传个什么呢?是不A对象就行了啊,需要给我返回一个布尔值,来一个flag,最终我们把这个flag提供给这个阿贾克斯的这个想要的内容,好print。
07:31
杰森,咱们来哪个?啊,这个flag就行了,对吧,好,Response,咱们来一个flag OK了,好,接下来我们来处理这个业务层save。行,我们用一个这个布尔值做一个标记啊,Flag等于一个处OK吧,Activity DAO调一个save,把这个A传递进去,对吧?好,给我返回一个int,这个叫什么呢?这个叫做受到影响的这个条数,你执行添加,修改、删除,它一定会给你返回这么一个数值,对不对?好,我们来判断一下啊,如果咱们这个cont啊,它不等于一说明什么呢?
08:29
是不是添加失败了,如果添加成功了,受到影响的条数数肯定是一条啊好,添加失败,咱们把这个开关给它搬成。False啊,最后咱们把这个开关给它返回就行了,OK吧来,那么值得一提的是啊,其实在我们实际项目开发当中啊,那大家注意啊,如果你真正执行这个save的时候,服务器是出现问题了,你想一想是不是相当于报异常了,那如果一旦报一层,下边这个if是不是肯定就不走了?对吧,所以说最标准的方式其实还是应该按照我们今天上午做登录的那个抛出一个自定异常的方式,能理解吧,好,但是呢,我们不可能每一个需求啊都抛一个自定义异常,那太浪费时间了,所以说呢,今天上午那个登录操作大家回去好好做自定义常,你要学会抛,OK吧,那么我们将来所有操作都统一使用这个flag标记位来代替了,OK吧,好,我们现在来一个倒层的save,好。
09:29
TDL其实就是做一个添加相关的操作,对不对。那什么标签insert ID是save对不对?好,Insert into哪张表好?嗯,下边咱们来个这个。Values对吧,好。行,还得用到他。嗯。
10:01
说这个东西突然间觉得很好用啊。啊是吧,ID的ID他也没有,其他都有对不对啊。嗯了。那上面什么都得用什么逗号分割吗?对吧。下边是吧,咱们传的是一个activity对象,这里边咱们用井号号括号来取它的值对吧。啊,最后一个逗号不要忘了去掉了啊,行,搞定了。行,接下来我们来看一看这个最后执行的这个效果啊。Activity的这张表啊,咱们肯定现在还没有填数据呢,对不对,现在我们来做一个添加操作。
11:05
好张三一二三点登录好,这里边儿市场活动创建一条新记录名称,比如说我来个发传单一行吧,开始日期啊,今天然后啊17号结束,成本咱们来1000块钱。随便来一个描述123,现在点击保存走一个。来看一看啊,嗯,从我们这个后台的这个circle来看,我们来看一看啊,是不是最后执行的是这个insert。啊,从ID开始往里填对吧,好大家注意看第二个owner呢,咱们给里边填的是什么。求FB3这面收呢,是不是张三这个ID啊,请注意啊,咱们O呢存的是IDOK吧好,内是发出单一啊,好,我们来看一看,刷新一下是不是记录就进了,好,我们会看到啊,除了I time和I buy之外啊,其他的这个信息咱们都进来了,OK吧好,添加成功了,好,但是大家注意啊,我们这个列表是不应该刷一下啊,没错的啊,明天做这个列表,OK吧,好,我们现在来看,我现在还想来新填一条记录。
12:26
注意看了啊哦。他是模态窗口是这样吗?我们刚才可没有在页面上进行一个全局刷新的操作,没有对不对,所以说我每一次是不是应该在添加完之后,把这个模态窗口中这个数据给它清空掉啊,对吧?好,所以我们在这啊。关闭模态窗口之前,除了咱们要刷新列表啊,还要干嘛呢?哎,清空什么呢,这个啊,添加操作模态窗口中。
13:07
啊的这个啊,数据是这样吗?清一下,其实清这个数据是很简单的一件事,为什么呢?因为我们已经学习过这种解扣的语法了,比如说咱们这个C做create杠系列的对不对,点VL用一个空串数去代替它就行了。啊,多来几个。都给它一个一个的,是不是复成这个空串就行了,但是我觉得这种做法比较麻烦。怎么办呢,想想。我不想这么做,好,我们来看一看啊,我们现在虽然是模态窗口啊,但是我们真正操作的是不是仍然是一张放表单呢?这个form表单大家注意看啊,Input,我们之前做这个添加操作啊,咱们提交这张表单是不是一个submit。
14:00
哎,那我这里边儿还有一个reset,这个还记得吗?哎,这是相当于重置表单呢,如果能把这个表单重置就好了。你难道来一个按钮让用户自己去重置表单吗?那不可能啊。所以。来看看同学们啊,Form里边我给它起一个名字,比如说我给它叫做act,这个放表单行吧,我首先第一步啊,找到这张表单的解扣对象,然后我是不是想方设法的给他reet一下就行了。对吧,好,咱们来看啊。嗯。到了。走。点什么呢?大家注意啊,如果是提交表单的话啊,咱们是提供了一个方法,这是提交表单OK吧。
15:08
啊,这是啊,咱们啊提交表单,那大家注意啊,我们现在的这个结扣本身表示的就是一个表单吧。为什么?因为你找到这个ID,它所对应的是不是一个放表单呢?哎,你调一个submit方法,确确实实是能够提交表单的,是这样吗?那如果按照这个逻辑来操作的话,我重置呢,同学们。点什么?在看没看到是不是有这么一个方法啊,哎,最坑的就是他啊,也就是说这个方法啊,它是无效的,但是idea里边是不是还给我提示了有这么一个方法。这方法用不了。
16:01
用不了。注意了啊,这块是值得我们注意的地儿啊,好,我们拿到了这个啊,Form表单的。对象。好,那么对于表单的解扣对象,它提供了什么呢?Sub me这个方法让我们干嘛呢?提交表单OK吧,好,但是大家注意啊,咱们这个表单的。杰克,对象啊,好,没有为我们提供什么呢?Set方法,让我们重置表单好。
17:02
收银啊,这是一个什么呢?这是一个坑啊。Idea是不是为我们提示了有这个?Set方法。是这样吗?好,但是啊,虽然。啊,解对象啊。没有为我们。提供这个reset方法。但是谁给咱们提供了呢?啊,我们原生的JS为我们提供了这个。Set方法好。所以我们现在要做的是什么呢?我们要将什么呢?这个jary对象啊,给它干嘛呢,转换为原生。
18:02
JS对象是这样吧,那原生这个GS对象就相当于是什么对象?哎,原生JS的这个盗对象是这样吧,哎,盗对象OK吧,好,我们现在来复习一象啊,这个接口RY对象啊,啊如何转换为这个JS的这个do对象,OK吧。哎,行了,一起来吧,帮对象如何转换为解Co对象,二者之间能互相转对不对?好,我们在使用解的对象的时候,其实可以干嘛呢?可以将。我们的解扣的对象当做倒对象的数组来使用,是这样吗?好,所以说咱们从这个数组里边来取得这唯一的一个元素,就是这个表单元素,是这样吗?通过数组大家注意是不是可以使用这个中括号以下标的形式来取啊。对吧,或者你以get形式来取都行,但是中括号的形式最简单对吧?好,所以说咱们可以来一个什么呢。
19:06
啊,杰克啊,对象。Jary,对一下,后边来一个这是什么,是不是一个下标啊。来取得这个盗墓对象,是这样吧,但是啊,我们现在这个解扣对象里边是不是只有一个盗墓对象,就是指的是这张表单呢。是这样吗?好,所以说这个下标应该是从几开始数呢?是不是直接是零就行了,对不对?好,那么咱们这个倒对象如何转换为解开的对象。这个很简单了啊,加个什么Dollar括号给它括上,到它就变成了解块的对象了,对吧?这个啊我们以后也有用啊,行,那看看啊,这个是什么,这个是不是解扣的对象啊,OK,转换成倒怎么转啊,中括号加上什么零行搞定啊。
20:03
来试一试啊。好,张三。123登进来,登进来之后咱们来看啊,这个市场活动我再添一条啊,再添一条,比如说在这里边啊,咱们来那个百度推广行吗?好,开始日期,比如说是今天结束日期28号,成本1000块钱描述我来个123,我现在点一个保存,我现在又进来一条记录,是这样吧,好,我们现在再点一下这个创建,注意看了啊,走一个好使吧。没有问题啊好,所以说不要被这个idea这个工具给迷迷惑了,OK吧,他给你提供的这个方法其实不正确的,OK吧,包括今天上午咱们使用那个K扣的,还记得不同学们。
21:08
哎,他说给你标识的是一个过期的对不对,来看看啊。其实这个东西啊,我们现在啊,不算它是过期的,我们现在仍然还在使用它,OK吗?其实没有一个更好啊,更优质的一种方式去代替它本身它就已经很简单了,OK吗?好,所以说啊,某些情况下idea有一些敏感啊,OK吗?好,那包括今天咱们刚才讲的这个东西啊,啊这就更不行了啊,更不行了,直接你一个解,它会给你提供一个reet方法,其实它是没有的,OK吧,行了,这个这就是咱们。
我来说两句