00:00
来,那么再往下走的话呀,咱们就开始来编写我的代码对吧?编写代码,那编写代码的时候呢,别忘了同学们我给大家提过是吧,就像我前提的东西呢,我会反反复复给大家说对吧,大家呢能诶记住的是最好的是吧,说咱们在开发的时候呢,那就有两种方式,一个什么呢?一个是我水平开发对吧,还有一个什么垂直开发,什么叫水平开发呢?就是说每人对吧,你们项目组可能三个人,然后呢,咱们现在每人负责的模块呢不一样,对吧,你就专门干什么,就专门触责我们这个表志草,你呢就专门写右务层,我呢就专门去写我们的直务草对吧?这水平开发方式还有一种呢,垂直开发方式,垂直开发方式呢,就是从头到尾你的动参与对吧,这是一个开发方式,短到另外一个还有一个开发的一个咱顺序对吧,那我说有时候从前往后对吧,先在前台,然后呢,再这个写数据库,然后呢,再或者是从后往前对吧,从往前,那一般咱们实际这个这个过程什么样的对吧,咱们说从两边到中间对不对,对吧,也就是我现在呢,有可能我架构啊,我先把这个数据库的表。
01:00
给建设出来,然后根据表对吧,就可以把这些什么啊,基本的咱们的对象就是B这些东西对吧,就你们比较擅长的对吧,属性私有化,然后概率方法这些东西你生成了,然后呢,把咱们现在的一些增删检查东西可以帮你自动生成,就简单的增删检查这些东西都可以帮你生成的,然后接下来咱们再诶从前台再发送请求啊,怎么怎么样啊,一般这样开发对吧,那我现在呢,只有三层啊,我这有三层对吧,有咱们的表示层,有咱们业务层,还有一个呢持有层对吧?那我现在先写什么呢?啊,这个咱大家比较陌生,咱们呢就先来写它,注意啊,这个如果以前没做开发的话,这是新东西,对吧,而且呢,对吧,这个你会觉得特别智能啊,你会选得特别智能对吧,那咱现在呢,来把这些东西来一起来看一看对吧?来看一看我这个买PA,看帮咱做了哪些事啊,做哪些事,呃,那么如果说你要想去先把这买benefit给它写出来的话,那首先呢,咱们得把这个项目啊,这个结构给大家说一说,来到我们现在。
02:00
里边,然后接下来打开咱们这Java,然后接下来在咱们当前帕下面,那目前呢,已经三层架构,是不是两层有量,那咱们再来一层对吧,再一层里呢,对我现在就叫我们这个map对吧,其实这个是我们持久层只购买bed一般的对吧,管叫map对吧,Map对吧,然后接下来咱们说啊,在开发的时候有原则,咱们面向抽象编程,面向接入编程,咱不要面向具体对吧,那么我现在这里边,那我这是为了和数据库打交道呀,那么具体和数据库打交道的方法都有哪些呢?咱们在这里我呢去创建一个我们这个类啊,去创建类,比如这个叫order外的,然后呢,咱们这个map啊,这是我订单框表它的一个map对吧,Map对吧,那么咱们在这里主要干什么呢?主要定一些我的方法,注意啊,只定一些行为这些方法,具体方法怎么实现,咱们在这里不去做的,对我只是一个接口对吧,叫order外的map对吧,然后接下来,那么咱们现在呢,在我当前这个接口里面定一些方法,注意这是什么,这个是。
03:00
对我们这个订单啊,对订单宽表来进行我们这个操作,它的一个接口啊,它的一个接口对吧?那咱们现在呢,在接口里面提供两个方法,大家想一想,那么这两个方法应该干什么,是不是叫数据库里面去查询数据啊,查询什么数据呢?那一个是来获取我们这个当日啊,获取咱们这个呃指定日期,呃指定日期它的一个交易额啊交易额对吧?那么另外一个呢,咱们是不是获取指定日期的分时交易额啊,获取咱们这个指定日期,对指定日期它的一个分时交易额,它的一个分时对吧,交易对吧?那么这个东西,那既然你要获取这两个东西,那咱提供两个方法呗,对吧?那比如说这个方法叫get对吧,什么呢?Order对吧,这个呢是total,这个一般一般我现在的规定啊,就是。
04:00
规范对吧,有的时候呢,在咱们,比如说我现在呢,这个获取都有概的意思,短这个select其实就是查询的意思,但是呢,它为了区分啊,为了区分它一般呢,它在咱们这个service层,表示层和咱们这个持久层的对吧,它俩对吧,给它区分一下,比如说我这表示层啊不不不是表示层业务层,我这里我都用什么get对吧,然后呢,我摄头都用什么select,对,一般呢,它有个这样区分,那比如说我现在呢,我这里我用咱们这个select对吧来命名对吧,来查询什么呢?来查询我们现在订单它的一个累计交易额对吧,那查询哪天的呢?咱们这里是得给我传一个日期过来呀,对吧,查询指定日期的到的交易额,那么咱们查询完之后,它是不是得返回一个结果呀,返回什么合适?这个什么形式?啊,这这这个是是应该做更合适一点,对吧,咱们现在这大家想想交易轮本身,那么我们现在呢,是不是应该是做这个浮点数了,但是浮点数的本质是不是有咱们这个这个精度丢失的问题啊,所以说呢,那咱们在这里一般什么形式呢?一般是December对吧?那么如果说我现在要是我这个数量比较大的话,那么这个时候又说对吧,这个big December bIgEmber对吧,那咱们这个呢,给它返回来,那么第二个呢,那这块呢,它要指这个返回指定日期的,它的一个分时交易额啊,它的分时交易额,那么如果指定日期的话,大家想一想对吧,比如说啊,我现在对吧,这是11月2号,然后呢,分时交易额对吧?那如果分时交易额的话,那这个时候它返回的是一个什么样的形式呢?对吧,注意这个时候呢,他其实也会帮你啊,来做一个我们这封装啊,他帮你呢,也要做一封装,对吧,那么这个封装的格式呢,就相当于咱们一开始在我们这个叫菲尼U。
05:49
他做的事对吧,他也会把咱们当前每一个小时的这个数据给查出来,放在哪呢?放到一个集合里面去,对吧,然后他也会帮你把这个数据封装一个什么呢?封装成一个map,具体这个map的类型啊同学们,那这块儿呢,其实对吧,它不确定为什么,因为咱们现在这个map,它并不是说11点它的交易额是多少,然后12点交易额多少,因为你想你要想去算咱们这个这个11点交易额多少的话,那这个时候咱们是不是应该还得计算一下呀,对吧,还得做一些我这个什么处理,对吧?那么你现在拿到的什么呢?他拿到的可以是这样东西,比如说我现在呢一个杰son对吧,然后这个呢,假如说是我们这个小时对吧,这个呢是小时,然后接下来,然后告诉我对吧,这个呢是我们这个比如说一一点,然后接下来再到这里还有个属性,它的一个amount,对这是什么呢?这交额,然后告诉我交油多少,比如说100,对这个一个阶段下完事了,对吧,然后再往下再来一个对吧,那这里放什么呢?比如说还是HR啊,这个呢是两点。
06:49
它的两点,它的交流是多少,怎么的,对他其实放的这个东西啊,他其实底层呢,其实放的是类似于这样的内容,当然这个东西呢,你也可以自己指定,说老师我不放这个东西,我放什么,我放对象行不行,可以短途机是怎么指定的,咱们一会再说对吧,你现在呢,其实返回的可以类似一个我们这个对吧,这个麦你可以理解成杰森的也行,对吧,然后记下来,咱们现在呢,把这个东西给他写一写对吧,那这里啊,你也得给我传东西什么呢?String类型这个日期对吧,你是不是也给我传一下呀,对吧,然后呢,把它这个改一改对吧,这个呢,不是我们total了对吧,Power对吧,指定日期的一个分时交易额,好了,接下来同学们接口有了,那接下来咱们该干什么了,是不是得写实现类了呀,对吧,那咱们马上呢,我们正常的一个思路,那应该是马上写一个类,然后去实现这个接口,然后对这两个方法去做实现,对吧?假如说同学们按照它正常思路啊,我在这里,我呢应该去啊,应该去创建。
07:49
一个类,注意啊,同学们听着这咱正常的思路对吧?在这里我呢去创建一个order,然后呢,Y的MY,然后接下来有一个ITL这样一个类,然后让他去干什么呢?让他去我们这个实现,我们现在呢这个order y的啊,Member这个接口,然后并且呢,对咱们当前这个接口里边的方法来进行一个实现,对吧?那大家想想这两个方法要查询数据库吧,获取连接你是不是得获取对吧?那你能想到获取链接你顶多干什么,你顶多抽取一个工具类嘛。
08:22
对吧,就你们现在这个这个咱们所学的知识点,你顶多你抽取一个什么DBU艇对吧,这你们能想到最大的优化了吧,抽取我们DB,然后呢,U艇的工具类啊工具类然后呢,来对数据库进行操作,那么如果对数据库进行操作的话,大家想想你在这里你是不是得想办法去干什么呢?把链接获取,然后执行搜狗语句,然后处理结果集啊,就你在这里,你肯定要执行我们这个查询搜口,然后在这里呢,你肯定要处理我们的结果集,对吧?处理我们结果集这块代码呢,我相信同学们你能写出来啊,因为这和我菲尼克斯咱风巢工应类这个事说比较像啊,对吧,然后这块那你要做的话,你是不是也得去把这个东西写一下,也得这个思维也处理一会题啊等,关键是你能写出代码来,同学们,但是呢,在处理的时候这个东西比较麻烦呀。
09:13
就假如我现在有50个属性,然后你需要对我的50个属性给结果集做一个处理,对吧?那你想一想,咱们在这里分析了一克斯对吧,然后攻击类里边对吧?那我在处理的时候,这是比较麻烦的,而且我现在封装的时候,如果说啊,如果说对吧,那我在这里对要封装的时候,我把转让对象你考虑东西还是比较多的,对吧?就咱们你看处理结果题的时候,这个事我自己去写是比较麻烦,对吧?所以说呢,那咱们在这儿和正常思路呢不太一样,就这个事啊,这个事你什么这个什么数据库连接呀,什么咱们现在处理结果这个直接搜索句呀,什么处理结果集呀,对吧,包括谁,包括这个类呀,你都不用创建了啊,你都不用创建了,把这类就拿掉了,对吧,谁可以帮你做呢?咱们就my be啊my be对吧,他可以帮你做对吧,他可以帮怎么做呢?对吧,就是你现在不有要实现这功能吗?就你实现这个功能,你告诉我这个搜狗L语句是什么就行了,对吧,我会根据你现在写的搜狗语句来帮你自动的。
10:14
来创建一个类,注意啊,这个类呢,不是咱们咱们创建的,它呢会在编译的时候啊,来帮你创建一个类,对吧?然后接下来实例化这个类的对象来帮你完成这个事对吧?来帮你完成这个事对吧?哎,那么如果说你要想做这个事的话,那么咱们需要呢,那你在这里得做一些配置,对吧?你需要这些配置,那么怎么做些配置呢?那咱们继续是吧,再往下走对吧,现在呢,我把这些东西啊给他对吧?这个提供好了,那么接下来咱们需要去编写我们当前这个接口它的对应的映射文件,注意和咱们原来这个思路不一样了,原来接口它只有时现类,现在没有时间类了,那不能说没有了,就不需要咱们自己去显示提供了,对吧,你让买be的自动帮你创建这个类的这个时间内,而且这个时间内不是显示的对吧,是在编译的时候对吧,它在底层帮你做的啊,运营的时候,它其实也会创一个类出来,对吧,但这个类根据什么来创建呢?对吧,根据我们现在的配置文件对吧,我们管它叫。
11:14
做我们这个接口的映射文件对吧?映射文件咱们刚才是不是指定了my button这个文件放在哪对吧?Submit这里对吧?应该有一个属性对吧?在resources下面有一个属性,这个属性呢,来指定my bed映射文件,它应该放到咱们这个路径下边对吧?它应该放到我们这个路径下边对吧?那么我们现在呢,这块注意看啊,这块map location其实指定是谁,指定是我们的映射文件啊,应该放在这里,所以说呢,那么咱们在这里我应该呢,去创建一个我们这个文件啊,创建文件这个文件的格式,这个后缀呢,那肯定是点我看没有这个名称,建议啊同学们啊,建议那和你的接口名呢一致啊,当然这个东西你可以不一致是吧,但是建议这个规范是这样的,Order什么呢?Y的map,然后呢,这个是我们这个叉ma,咱们是不是有一个这个接口对吧,那接下来再到这里边,那么要写什么东西呢?要写什么东西对吧。
12:14
那这个XL的这格式对吧,大家呢,把这个拿过来对吧,尤其是上面这块啊,这个关于我们的XL的格式对吧,这块呢拿过来。这会拿过来对吧,那么拿完之后呢,来大家看一看,咱们现在呢,一般你只要是写这个插标文件,那么在咱上边呢,你都会看到像这个东西呢,它指定的版本,以及咱们这个文件编码方式,大家应该能了解,然后这块呢,有一个对吧,咱们当前什么类型,然后指定的一个这个内容,这叫什么呢?叫DTD,其实除了DTTT这是比较老的啊,其实除了DD之外,相比较新的一般都是什么呀?Schemer啊,这叫schemer,对skimer对吧,Skimer,那么咱们现在这个D滴skimer它是干什么的呢?对吧,咱们管它叫做约束文件啊,咱们管它叫约束文件,这也是今天同学问我问题,然后呢,我把这个给大家介绍一下,对吧,也要去了解了解啊,就是约束文件,约束的什么呢?它约束的是当前我现在在咱们这个插表文件里边,你可以定义哪些我们这个标签,哪些元素,然后元素里边呢,你可以放哪些属性,对吧。
13:27
然后属性跟标签之间的先后顺序,那应该什么样的对吧?哎,这个大家可以看一看,在咱们这里边对吧,你可以定义什么的哪哪些东西对吧,你比如说可以定义什么咱practice对吧,然后现在呢,可以有什么,咱们什么卖吧,然后现在可以有什么这这这些对你看这都是什么,这其实都是我们现在的这个元素的名字,然后这什么,这是我当年属性的列表,就他可以约定好了,都约定好了对吧?那么咱们先说老师这怎么为什么要定一个这个这个东西啊,那你得对咱们叉ma有了解,同学们,你这个X ma你们是怎么理解它的,它是啥,X ma是啥?
14:03
啊,镖局啊,干啥用的。啊,你们用S干啥,好像你们就用这当配置文件了是不是,但其实呢,注意我说XM啊,它和Json一样。XL,它和杰森一样,就除了配置之外,它可以干什么?它可以做数据的传输。比如说我现在我想要一个学生对象,你们怎么给我传的,对吧?你们是不是说老师我可以给你一个介的对象,对吧,在这里对吧,你不想要学生吗?对吧,在这里来给你对学生ID短,然后进来1100短着内吗?短招三我给你了,这种形式我能接受,对这种形式我能接受,大家也能接受短他除了这种形式之外呢,那我还可以这样,同学们怎么做呢?我在这里我定一个student,那我在这里我定student,在student内有什么呢?ID对吧,ID是谁?ID100,那还有什么呢?还有咱们的name对吧,这个name是吧,他的名字叫张三。大家想想,我给你这种形式,你就不能传出去吗?是不是也可以啊,对吧,那我要给你这种形式的话,那我假如说啊,我要想以这个插标文文件给你的话,那我就自己得定义一个我ddd文件对吧?在D理文件里边,我就可以约定我当前这个S文件都可以跟什么呢?都可以有哪些标签呢?啊,比如说诶1STUDENT呢,在student标签上面可以放哪些子标签的,也可以放ID,可以放name,对吧,他们之间这个顺序什么样啊,是什么样的对吧?你可以我约定一下对吧,这会呢,是扩展啊就是扩展对吧?那么咱们现在呢,我只要用它就可以了啊,因为一般咱现在在传输数据的时候,像早先呃年的时候,你像什么web service呀,或者什么在传输数据的时候,还有我的叉ma形式,现在基本上都是什么,都是Jason啊,都是Jason对吧,然后接下来那咱们现在呢,要配一些东西,那怎么配呢?其中在我当前我这叉M里边,那么你需要配置一个map,对表示的是我现在呢,要做一个我们的映射啊做映射大家想一想这个东西对吧,叫映射文件,它是。
15:57
谁的映射文件是不是咱们现在这个接口它的映射文件呀,对吧,那你往这一放,说我现在啊,这个配置文件是这个接口映射文件,他俩之间我怎么知道怎么建立关系啊,现在是没有办法的这个关系建立起来,所以说那么咱们在这里你要指定一个属性叫什么呢?叫name base,这个name space要求和你接口的权限地名必须要保持一致。
16:22
就在咱们映射文件里边,他怎么知道我当前映射文件,我映射了哪个接口,对吧?在咱们map标签下面有一个内SP属性,那么这个内SP的属性啊,它里边放的这个值啊,就是谁,就是我当前这个接口啊,它的一个我们的权限的名啊,权限名,那这样的话,大家想一想,我现在在咱们这个的这个启动的时候,那我是不是可以想办法找到接口,我可以想法找接口,然后接口,那我现在呢,到找到之后,我是不可以去找这应证文件,到哪去找映证文件呢?咱们的配置文件指定了呀,你到we下面去找,然后你看诶这个映证文件它以查找结尾的,然后去找它的一个内部SP属性哦,在这里配置了啊,它这个配置这个接口,所以说它呢,是它的映射关系,那么如果你知道这个是我们这个接口的映射文件的话,那你想一想,这个接口有两个方法没实现呢,你是在想办法给处理一下呀,对吧,怎么处理,咱们说秀一会回来继续咱说秀一下。
我来说两句