00:00
我们用这个AX啊,我们再来做一个案例,一个典型的例子哈,我首先把这个例子跑一下,我们看看这个例子,这个需求是什么,以及我们如何完成。嗯。嗯,我把这个复制过来。我们看首先的话呢,我这块有城市,这个城市是来源于数据库,我随便选一个城市,这个时候它会给我显示部门,我显一个部门会给我显示对应的员工啊,底下会显示员工的详细信息,好了,当我把这个城市切换为请选择的时候,都没了,好我再来选一个城市。
01:03
这个城市没有部门,给我弹出一个提示,没有部门。就是有部门的,只有一个部门,很多个员工,哎,基本上就是这样的一个效果,那就是几级联动的一个效果。我们这里边的话呢,一个是AX,另外一个我们是不是还是看到了一个这个一个小圈在转呢,啊这就block UI我选一个,你看这没有哈。罗马这个应该也没有选一个有的西雅图啊,这个是有,那有一些部门呢,也没有员工,有员工的就把员工显示就可以了,我们显示的话呢,这个信息显示的比较少哈,那这个数据表呢,就是来源于我们讲circle的时候,那三个数据表,我们首先有一个e or patience。
02:05
这边我们还记得有一个city吧,我指的这个city就是它用的是老ID跟city,那这个完之后的话呢,我们还有一个depart depart文字里边我们是不是可以引用一个老ID啊D,当我选择某一个城市的时候,城市我不可以跟这个D关联吗?那我可以用这个ID得到当前城市所有的部门,那部门要是有了,我可以得到employee。Employee employee呢,我们只显示了部分信息,具体说ID lastname email跟Siri。这就可以了,这就是我们要用的三张数据表,OK。咱们写一下需求啊。
03:04
直线城市到部门。部门到员工。员工到员工的详细信息。这个器显示吧,OK,我们看一下这里边的话呢,我们需要用到三张数据表,分别是这数据表里边的话呢,有很多这个字段哈,我们用的是。Location ID和然后departments这里边我们用的这个基本的这个嗯,字段应该是有这样的几个是吧,第一个department ad,第二个department name OK,下一个的话呢,我们实际上我们还需要用一个老KID,老ID在我们关联这张表的时候需要用它,于是我写一个location ad后employees。
04:36
Employees有个employee ID,因为我选一个员工的时候,能够定位到那个员工啊,Last name fair email,当然还有一个department ID啊,这是我们用的三张数据表,然后这里边对于我们来说,呃,需要新学习的知识呢,就是转这个小圈到block UI需要新学习的几块RY一个插件,几块RY的一个插件叫block。
05:17
有可以了。这就是我们。要实现的开始需要做的一些准备,那我们来写吧,我们首先看到的话呢,我们需要有跟这三张数据表关联的张B,所以说这里边儿我直接写一下哈,第一个location。Location ID下一个private string对应的概赛方法。
06:03
好,还有一个是什么呢?还有一个是跟department这个数据表对应的department private ID private department name。下一个的话呢,我们我们在这个WB里边,我们并不需要,嗯,去写这个,呃,老KID,因为我显示的话,我不需要它,但我数据表查的时候呢,我需要它对应的概的方法。好了,还有一个employee。
07:00
哥。VI类型的employee ad。Last email up类型的Siri可以了,好了,对应的概算方法。这是我们写的发病,这有完之后的话呢,我们下面我们还需要干什么呀,我是不是要需要具体去查数据库啊,所以说我们还需要有DAO,因为我需要去查数据库吗?比方说我们看哈,我这个页面的话呢,我才这么才这么这个嗯,一刷新的话,或者说我敲入这个地址的话,怎么样,你得给我有这个尝试吧,这很显然是来源于数据库,那我选择某一个城市的时候,这部门怎么处理啊,是不是也来源于数据库啊,但是我们页面上获取的方式是HX,但我们这个DAO啊,需要写。
08:18
那我们把这个DA的话呢,我们来说一下写这个DA的代码呀,可能会这个比较长是吧,就是我们以前使用dp re写那个代码大家都知道是吧,我把这个代码的话呢,就直接复制过来了啊DAO manager。这个不知道。我把这个D麦那段呢,我也复制过来。然后呢,我需要有对应的价包。
09:01
这加包的话呢,我们需要C3P0需要DV。没有了D3P0DB还得有什么呀?买circle的驱动吧,啊,Oracle的驱动是吧?Oracle的驱动程序otd bc是四行。我们看一下啊,这个是这个DB manager,那我们现在我们是不是还需要一个C3P0的一个配置文件啊,配置文件我也直接考了。
10:04
这就是C3P0的一个配置文件,这个没啥说的哈,现在我们来看这个DB manager,我创建一个data source,获取一个链接。然后的话呢,这个d manner是单立的,这就行了,这个写的比较简单,因为我们这个里边没有事物的操作,都是读的,所以说没有什么比方说像这个关闭啊,像什么这个提交事物啊,回滚啊,我都没写好,我们来看一下我们的贝斯DAO,这个贝斯DAO的话呢,我们说一下哈,这里边的话呢,我们没有事物,所以说只需要获取connection,关闭connection就可以了,我们直接在DA方法里边获取的connection,我们知道这样写的这个特点是什么呀,是不是不能不能够很好的知识事物啊,我每一个Du方法都是一个新的connection,那我一连续调好几个do方法的话,我怎么能够控制事物呢?但我们这里边没有事物,所以说这个就过了哈,Get for list传一个circle进去,我们。
11:15
返回T对象的一个集合,就是传一个circle进去,返回某一个T对象,行了,就两个方法,这两个方法对应的分别是,你看我把这个一写啊,我需要一个集合,而这个我选我选一个,我返回的还是需要还还是一个集合,这个我选一个又是一个集合,我选一个的时候,这是不是一个对象啊,呃,只需要两类方法我写完了。好了,这样的话呢,我们底层的这个准备工作呀,就OK了,然后我们需要来写我们的这个,嗯,显示部分,那显示部分的话呢,我首先这个页面得出来。
12:03
这老list,于是的话呢,我这样写。JSP我们这么写啊,我们写个employees JSP。大家知道什么呀,我直接要是写这个页面的话,这个页面是不是自己没有显示所有城市那个功能啊,他得怎么样,他得绕一圈吧,得先经过一个色,然后再过来吧,是吧,他自己没那功能,所以说的话呢,这个我们这样。PSP。Forward,我直接去一个地,或者是这个,呃,Responsedirect也可以。这样写吧。
13:00
Response,我的是location。List。好,写完这个location list,一定是有一个有一个so来做支撑,我们来写一个哈。Employee,我把这个的话都放在这个里面,下一个employee。复制下一步。都是盖的请求。这边的话呢,我需要这一个。Sol应答多个请求,我这块我改一下吧。
14:06
号method等于。好了,我需要去获取对应的方法,而且去调那个方法。String method等于request.get。一个是method。我需要去调那个对应的方法麦。Method等于class.declared method method name里边这个参数是什么呀?参数request.response。
15:04
八好了,然后呢,我要去调这个方。非常直接开。然后我要去这个方法,My in box,谁呀,是不是这意思啊,Request。好,这个时候的话呢,禅一上来我就可以来写这个方法了,看一下啊C稍微我们需要写一个方法名叫list location list list location list locations。C、拿过来。
16:00
嗯。行。这里边的话呢,我需要获取到所有的老K对象。Private。S do do等于6DO。OK,那我需要获取所有的location string的circle,等于select ID from,是这么写吧,获取全部的吗?然后。Easter。Location location等于点。
17:06
At for list location.plus没有参数。O把这个放request里边,Set attribute,哦,S,然后呢,我们转到一个页面,我们转到request.get request。Web INF page下边的for is.getb.forward但家现在的话呢,我们应该理解是吧,我们为什么要把这样的页,因为放在web for3。因为你直接访问无效是吧,你直接访问的话也不行,它必须经过一个solve,那我们现在的话呢,把这个页面我们来看一下,这个页面呢,我需要使用这个EL跟GSTL来进行显示。
18:07
大体的样子呢,我我我直接复制一下哈,呃,我们得进行一些这个简单的改动copy。音符赶紧来,我首先我加入D跟DSTL。DDL,你说C开不开。打开这里边儿的话呢,以前用的是这个,呃,Stra的标签,这个不要紧哈,我们改一下就可以了。
19:06
这是导的quiry,导的block UI这个代码的话呢,我们都得重写。看一眼哈,一定往各重新写,然后我们往下翻啊,这是一个loading,就是这是一个图片在转,这个图片的话呢,们就在这放着,不过这个图片开始的时候它是隐藏的,就是说你看着转那个呀,实际上是一张图片,而并不是真正的去刷数据库了,这个去读那个进度不是那个意思。然后我们看这块儿这个写法呢,需要我们重新来写。C for each items。Patience。
20:04
For。嗯。上去一样的给拿掉,这样这个页面就显示完了,就是一个city,然后怎么的,然后是department,你看department我说啥也没写呀,哎,我们需要靠aja帮我们完成,然后是员工,然后是员工的详细信息是一个table,但这个C的话呢,是。隐藏的,这不display now吗?然后这块的话呢,有ID有name,有email,有是不是虚席以待啊,哎,等待着你给我填充进来,OK,这个时候这个页面的话呢,应该是可见的,我们找一下试试。
21:02
Employees。POK。貌似是有对,貌似是有啊复制。哎,看上去像有,但是我这块这个值呢,我们看一下我们的employees啊哦city哦,这个显示的方式的话应该叫location。这叫location ID太少。啊,可以了,没问题,下一个问题就是我要选择一个,然后的话呢,显示对应的部门是吧,到下边的话呢,是真正开始我们这个AX,这是前期的一些准备工作,我发下去大家先看一下,然后这块没问题的话呢,哎,我们来做下一个A。
22:17
我把这个相关页面跟对应的这个类的话呢,我在在笔记上我再写一下哈,第一稿。要准备工作,这个准备工到什么程度呢?哎,我可以显示所有的城市信息。然后我好操作呀,下面的话呢,我们看吧,我首先呢,我是在登录下有个employees GSP这个页面怎么了,有通过啊。
23:09
同印象。到哪了呀,到了我们这个叫employee啊,一个方法。一个方法叫list locations OK,我在这个方法里面,我们获取了全部的location信息,并把locations放入到request中了,是我们,是我们干的事哈,OK。好了。再下一个,我是通过转发的方式。
24:03
去哪了呀?我们通过这个呃,转发的方式,我们来到了这个JSP,这个JSP叫web INF pages下边的employee,啊,我们在这个页面上,我们使用DSTL显示了所有的城市的信息。这么点事,OK?
我来说两句