改造工作流的代码

项目中用到了工作流:各项费用申请,代码的耦合度很高,设计下优化目标:流程模块与PHP框架解耦,与业务逻辑解耦。

类图:

前 言 1 1 概 述 2 1.1 选题背景 2 1.2 组织结构 2 2 所用相关技术和方法 3 2.1 工作流 3 2.1.1 什么叫工作流 3 2.1.2 工作流发展 3 2.1.3 工作流的优点 3 2.2 MVC工作模式 4 2.2.1 MVC设计思想 4 2.2.2 MVC的具体实现 5 2.2.3 MVC的不足 6 2.3 JSP技术介绍 6 2.3.1 JSP的运行原理 7 2.3.2 JSP的生命周期 8 2.3.3 Servlet和JavaBean技术介绍 8 2.3.4 Java 虚拟机 9 2.3.5 JSP访问SQL Server 2000数据库 9 2.4 数据库后台环境配置 10 2.5 系统开发工具简介 10 2.5.1 Dreamweaver 10 2.5.2 MyEclipse 10 2.5.3 Tomcat 11 2.5.4 SQL Server2000 11 2.5.5 chs_sql2ksp3 12 3 系统需求分析 13 3.1 系统功能分析 13 3.2 系统性能分析 13 3.3 系统方案的确定和评价 13 4 系统总体设计 15 4.1 系统层次模块图 15 4.1.1 营业厅模块 15 4.1.2 收费管理模块 16 4.2 系统数据流程图 16 4.3 数据表设计 18 5 详细设计及编码 21 5.1 编写JAVABEAN 21 5.2 营业厅实现函数 21 5.3 收费厅主要的实现函数 22 5.4 JAVABEAN主要实现模块 22 5.4.1 中文字符格式的转换模块(Stringto.java) 22 5.4.2 自动生成验证码(Ran.java) 22 5.4.3 数据库的连接(ConnectionFactory.java) 23 5.4.4 数据库连接的关闭(DatabaseUtils.java)--只提供接口 23 5.4.5 密码修改模块(Common_fuction.java) 24 5.4.6 时间格式转换(timeBean.java) 24 5.4.7 数据统计(counthander.java) 25 5.4.8 营业厅的接口(luruaction.java) 27 5.4.9 营业厅的主要函数实现(luruhander.java) 28 5.4.10 收费厅的主要函数接口 32 5.5 管理员登陆模块 33 5.5.1 管理员登录 33 5.6 营业厅管理模块 36 5.6.1 Left.jsp页面 36 5.6.2 Work.jsp 40 5.6.3 customerlistinfo.jsp 41 5.6.4 allinfo.jsp 41 5.7 收费厅管理模块 42 5.7.1 Left.jsp 42 5.7.2 Work.jsp 43 5.7.3 Customerlistinfo.jsp 43 5.7.4 gongdan.jsp 43 6 系统测试与维护 45 6.1 测试目的 45 6.2 测试环境 45 6.3 系统测试 45 6.4 系统维护 45 7 开发难点与技术 46 7.1 主要程序实现的代码描述 46 7.1.1 验证码的自动生成 46 7.1.2 生成WORD工单 46 7.1.3 以一定的时间刷新页面 47 7.1.4 JSP中文问题的解决 47 7.2 在程序编码过程遇到的主要问题: 48 7.3 代码编写风格 49 7.4 我的不足: 49 结束语 50 致 谢 50
为了实现Activiti工作流引擎在达梦数据库环境下的适配和改造,需要对Activiti的源码进行一系列关键性的修改。这些修改主要集中在以下几个方面: ### 数据库类型支持 首先,在`ProcessEngineConfigurationImpl`类中增加对达梦数据库类型的识别和支持[^2]。这一步骤确保了Activiti能够正确地检测到达梦数据库的存在,并对其进行相应的配置。 ### 数据库映射设置 接下来,通过修改`getDefaultDatabaseTypeMappings`方法,添加针对达梦数据库的映射规则[^2]。这样可以保证Activiti能够准确解析达梦数据库的数据类型,从而避免因数据类型不匹配导致的问题。 ### SQL语句兼容性调整 此外,还需要在`DbSqlSessionFactory`类中引入对达梦数据库特定SQL语句的支持[^2]。这是因为不同的数据库可能有不同的SQL语法特点,因此为了让Activiti能够在达梦数据库上正常执行SQL操作,必须做出相应的调整以适应其特有的SQL格式。 ### 排序功能优化 最后,在`AbstractQuery`类中加入对达梦数据库排序特性的支持[^2]。这样做是为了确保当使用Activiti提供的查询API时,能够正确无误地处理与达梦数据库相关的排序逻辑。 对于Activiti 6.0.0版本来说,如果希望它兼容达梦数据库,则同样需要按照类似的方式修改对应的源代码文件,包括但不限于`ProcessEngineConfigurationImpl`、`DbSqlSession`、`DbSqlSessionFactory`以及`AbstractQuery`这几个核心类[^3]。具体做法是在本地项目里创建路径及名称均相同的替代类来覆盖原始jar包中的定义。 值得注意的是,从Activiti 8版本开始据说已经内置了对达梦数据库的支持,但这一特性尚未经过广泛验证[^3]。如果您正在考虑升级到更高版本的Activiti以获得更好的兼容性体验,建议先查阅官方文档或社区反馈确认最新情况。 ### 示例代码片段 以下是一个简化的示例,展示如何向`ProcessEngineConfigurationImpl`类中的`getDefaultDatabaseTypeMappings`方法内添加达梦数据库的映射信息: ```java // 假设这是ProcessEngineConfigurationImpl类的一部分 public Map<String, String> getDefaultDatabaseTypeMappings() { Map<String, String> databaseTypeMappings = new HashMap<>(); // 其他已有的数据库映射... // 添加达梦数据库映射 databaseTypeMappings.put("DM DBMS", "dm"); return databaseTypeMappings; } ``` 请注意,实际开发过程中还需根据具体情况进一步定制化调整,比如处理特定于达梦数据库的功能或者修复潜在的bug等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值