疯狂java实战演义 第10章 事务跟踪系统

上传人:汽*** 文档编号:509284993 上传时间:2023-07-29 格式:DOCX 页数:44 大小:432KB
返回 下载 相关 举报
疯狂java实战演义 第10章 事务跟踪系统_第1页
第1页 / 共44页
疯狂java实战演义 第10章 事务跟踪系统_第2页
第2页 / 共44页
疯狂java实战演义 第10章 事务跟踪系统_第3页
第3页 / 共44页
疯狂java实战演义 第10章 事务跟踪系统_第4页
第4页 / 共44页
疯狂java实战演义 第10章 事务跟踪系统_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《疯狂java实战演义 第10章 事务跟踪系统》由会员分享,可在线阅读,更多相关《疯狂java实战演义 第10章 事务跟踪系统(44页珍藏版)》请在金锄头文库上搜索。

1、第 10 章 事务跟踪系统第 10 章 事务跟踪系统在企业应用中,我们经常会使用到一些事务跟踪系统,这些事务跟踪系统可以帮助我们有效的对事 务进行跟踪、管理。例如有这样一个场景,当某公司的经理接收到一个事务(例如需要处理某张订单或 者需要购买某些材料),而这个事务不必由自己亲自去解决的时候,可以使用事务跟踪系统创建一个事 务,并将该事务分发到相应的员工去处理,员工接收到这个事务的时候,就可以对事务进行处理,并将 每一阶段的处理结果保存到系统中,分发事务的管理者就可以时时刻刻了解事务的进展,对事务起到一 定的监控作用。在本章中,我们就使用Java开发一个简单的CS事务跟踪系统。10.1 确定系统

2、需求开发事务跟踪系统前,我们需要确定该系统的需求,一旦确定了需求,我们在开发的过程中,就需 要按照这些需求进行相关的设计,再按照这些需求去实现相应的功能。如果一开始没有确定好需求,那 么在开发的过程中,就会产生一系列的问题,例如做到一定程度的时候,就会有点不知所措,因为业务 还没有通。整个事务跟踪系统的中心是事务,所有的操作都是围绕着事务进行的,管理人创建、分发事务,执 行者处理事务,将事务的处理结果反馈给管理人,管理人可以查看事务的进行状况、事务的当前处理人 等相关信息,如果事务处理完成,那么管理人就需要在系统外进行一些工作,例如某经理接到一个订单, 需要他的手下去进行处理,就可以新建一个事

3、务,分发到他的手下,接收到这个事务的员工,就要为完 成这个事务进行工作,执行完该事务后,就将处理结果告诉系统,当经理看到事务的处理结果后,就可 以在系统外告诉他的客户,我们已经发货了,请客户查收等。这里需要注意的是,我们并不是要做订单 系统,只是做一个简单的事务跟踪系统。当一个员工接收到一个事务的时候,如果他发现自己最近根本没有时间或者没有能力去处理,那么 他可以将事务转发给另外的同事,让其帮忙处理,系统需要记录一条转发记录,让事务管理者可以了解 这个情况,可以在这个过程中了解到手下的工作饱和度及处理事情的能力等信息。整个系统的大致需要 就有这些,该系统的功能并不复杂,只要确定好需求,开发就更

4、加简单。10.2 建立界面我们大概了解了系统的需求后,可以根据这些需求创建界面。本章与前面章节中的图书进存销管理 系统一样,都是使用Swing创建系统界面,同样使用MySQL作为系统数据库。在本小节,我们先根据 需求确定界面与系统交互。10.2.1 登录界面如果需要进行事务跟踪系统进行业务操作,需要通过登录进入。用户进行登录,可以让系统知道用 户的身份,再根据这个身份去判断哪些功能可以使用或者不可以使用,也就是我们常说的权限问题。权 限一般包括功能权限和数据权限,功能权限是指某个用户并不能看到这个功能,从而不能使用这个功能, 数据权限是指用户的身份并不能去操作(查看)某些数据。本章的重点并不是

5、权限,因此只需要做简单 的权限即可。用户登录界面如图10.1 所示。图 10.1 系统登录界面 登录界面十分简单,两个输入框和两个按钮即可 ,其中需要注意的是, 密码框使用的是 JPasswordField 类,并不是 JTextField。10.2.2 我的事务界面我的事务界面主要显示用户需要处理的事务,并提供一些操作这些事务的按钮,让用户可以对自己 的事务进行处理,我的事务功能是每个用户都具有的功能,不需要加任务的权限判断,因此用户一登录 事务跟踪系统,首先展现的就是该界面。我的事务界面如图10.2 所示。图10.2 我的事务界面我的事务界面中,默认显示的是进行中的事务,该界面包括了如下操

6、作:口查询事务:根据事务的不同状态查询相应状态的事务,并显示到列表中。口完成事务:当用户执行完某个事务后,可以点击完成,告诉系统已经处理完该事务了。口转发事务:当用户没有时间或者没有能力执行该事务的时候,可以将该事务转发给其他处理人。口暂时不做:如果用户最近没有时间处理该事务(工作饱和),就可以将事务置为暂时不做状态,那么管理者就可以知道,该用户没有时间处理。不做:如果用户觉得这个事务没有存在的意义或者根本就不打算完成这个事务,就可以将该事 务的状态设置为“不做”的状态,让管理者知道,用户不会为该事务做任何的工作。在本系统中,事务包括的状态在下面章节将会详细描述。我的事务界面主要是一个 JTa

7、ble 对象, 只需要为该JTable对象提供TableCelIRe nderer的类来渲染列表即可。10.2.3 事务的完成、暂时不做、不做的处理界面在我的事务界面,提供了完成、暂时不做与不做的事务处理功能,当用户点击了这些功能的时候, 就需要提供一个界面,让用户进行相关的说明,例如用户点击了暂时不做,而该用户又想说明为什么暂 时不做,因此系统需要提供一个处理界面。事务处理界面如图10.3 所示。图10.3 事务处理界面事务处理界面提供一个JTextField来显示事务的标题,并提供一个JTextArea的文本框,让用户描 述相关的信息。在这里需要注意的是,用户进行完成、暂时不做与不做的操作

8、时,才会处理事务的界面, 在我们的事务界面中,还有一个转发功能,在下面章节中描述。10.2.4 事务转发界面用户发现自己没有时间或者没有能力去完成该事务的时候,就可以使用事务的转发功能,将属于自 己的事务转发给其他同事进行处理。事务转发界面与事务处理界面稍微有一点不同,该界面需要让用户 去选择需要转发的人。事务转发界面如图10.4 所示。图 10.4 事务转发界面如图 10.4 所示,在事务转发界面中,有一个选择用户的按钮,当用户点击了选择用户时,就需要 弹出用户列表的界面,让用户去选择需要转发的同事,用户选择界面在下面的用户管理章节中将会详细 描述。10.2.5 事务管理界面事务管理界面主要

9、让管理人员进行事务的管理,例如新增事务、查看事务流程等,与我的事务界面 一样,提供一个 JTable 对象,让管理人员可以清晰的了解各种状态的事务。这里需要注意的是,某一 个事务管理者只能看到自己发起的事务,查看到事务的相关状态与流程后,就可以在系统外进行跟进与 处理。事务管理界面如图10.5 所示。图10.5 事务管理界面事务管理界面提供了如下功能:口事务查询:可以查询各种状态的事务。口新建事务:创建一个新的事务,并为其指定处理人。口催办事务:如果一个事务的优先级较高,则可以催办该事务,让事务处理人知道,需要先对该 事务进行处理。口置为无效:将一个事务设置为无效,那么事务执行人就可以知道不必

10、为该事务进行任何的工作。10.2.6 新建事务界面事务管理者接收到一个新的事务,需要下发到自己的手下进行处理的时候,可以新建一个事务,并 指定相关的处理人。新建的事务包括事务的标题、内容、完成时间、处理人等信息,当用户输入了事务 的相关信息后,系统就将这些信息保存到数据库中。新建事务界面如图10.6 所示。图10.6 新建事务界面如图 10.6 所示,新建事务中同样有一个选择用户的按钮,与事务转发界面一样,使用同一个界面 作为用户选择界面。10.2.7 用户选择界面在事务转发界面与新建事务界面中,都有一个用户选择功能,当操作人需要进行用户选择的时候, 就需要打开用户选择界面进行选择,在本章中,

11、我们使用同一个界面来实现用户选择的功能。当操作人 选择了某个用户后,只需要调用不同的方法即可。新建一个用户选择处理接口。代码清单:codetransactionsrcorgcrazyittransactionuihandlerUserSelectHandler.javapublic interface UserSelectHandler /*在用户选择界面点击确定后执行的方法* param userId* param realName*/void confirm(String userId, String realName);那么在用户选择界面中,只需要提供一个这样的接口即可,操作人选择了某一

12、个用户后,只需要调 用接口的con firm方法即可,不需要理会具体的实现。用户选择界面如图10.7所示。图10.7 用户选择界面那么操作人选择了用户后,就可以执行用户选择接口的con firm方法。代码清单:codetransactionsrcorgcrazyittransactionuidialogSelectUserDialog.java用户选择处理类private UserSelectHandler selectHandler;构造器public SelectUserDialog(UserSelectHandler selectHandler) this.selectHandler =

13、 selectHandler;点击确定执行的方法private void confirm。得到选择的用户id与真实名称调用用户选择处理类的方法this.selectHandler.confirm(id, realName);this.setVisible(false);以上代码是用户选择界面的部分实现,注意以上代码的黑体部分,操作人点击了确定后,就执行 confirm 方法。这样,用户选择界面就可以实现重用的功能,因此在本章中,只有一个用户选择界面类。10.2.8 用户管理界面在实际应用中,还出现一系列的人员变动情况,例如有新的员工入职,有旧的员工离职,因此,我 们需要为事务跟踪系统提供一个用

14、户管理界面,让系统管理员可以轻易的管理各个用户。用户管理包括 新增用户、删除用户等。用户管理界面如图10.2.8 所示。图10.2.8 用户管理界面用户管理界面包括如下功能:口查询用户:根据用户姓名查询相关的用户,在实现中我们使用模糊查询。口新建用户:新建一个用户并分配相应的角色。口删除用户:将该用户从系统中删除,这里需要注意的是,由于原来已经存在的用户可能正在执 行某个事务,如果将其从数据库中删除,那么将会影响其他数据,因此我们可以将该用户进行 逻辑删除,即不将该用户信息展示到用户管理界面中。10.2.9 新建用户界面新建一个用户,需要保存用户名(系统用户名)、用户密码、用户真实姓名与分配角

15、色,新建了一 个用户后,该用户就拥有了所分配的角色权限,就可以使用本系统中的相关功能。新建用户界面如图 10.2.9 所示。图10.9 新建用户在本章中,为了简单起见,我们内置三种用户角色:管理员、经理与员工,管理员可以使用系统的 任何功能,经理不可以使用用户管理功能,员工只能使用我的事务功能。在本小节中,我们制定了系统 的各个界面,并确定了系统的交互,界面中的各个组件均使用Swing的组件,在这里不再详细描述。在 下面的章节中,我们将实现这些功能。10.3 开发准备在本章中,我们将系统分成三层结构, DAO 层、业务逻辑层与视图层, DAO 层用于进行数据库交 互处理,业务逻辑层主要用于处理系统的相关业务,视图层主要是界面组件。如果有使用loC容器,我 们可以很轻松的对各层之间的组件进行管理,由于本章中并不涉及loC容器,因此我们可以使用一个类 来对这些组件(DAO、业务逻辑)进行管理。10.3.1 数据转换工具类在开发图书进存销管理系统的时候,我们使用Java的反射来对数据进行封装(详细请看图书进存 销系统),在本章中,我们同样使用这一方式来对我们的数据进行转换,当执行查询的时候,我们将数 据库中读取到的ResultSet对象转换成具体的某个Java对象。但有一个前提就是,Java对象中的属性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号