文档章节

java1234_Activiti_第1讲_25张表

 小南风
发布于 2016/07/27 16:18
字数 712
阅读 56
收藏 0

今天的话,我们大概来讲下Activiti的25张表。

Activiti的运行支持,必须要有Activiti的25张表,主要是在流程运行过程中,记录存储一些参与流程的用户主体,

组,以及流程定义的存储,流程执行时候的一些信息,以及流程的历史信息等(后面我们会详细介绍这些表作用)

 

我们先写一个小实例,来把Activiti的25张表自动生成出来;

 

我们先建一个Maven项目 ActivitiDemo1

pom.xml里加上 Activiti支持,以及mysql驱动包。

<dependencies>
     <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-engine</artifactId>
        <version>5.19.0.2</version>
    </dependency>
     
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring</artifactId>
        <version>5.19.0.2</version>
    </dependency>
     
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-model</artifactId>
        <version>5.19.0.2</version>
    </dependency>
     
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency> 
    
 		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
		</dependency>
     
	</dependencies>

然后我们创建一个单元测试类 ActivitiTest01  (注意,有时候用自己的junit jar包,会出现诡异问题,所以我们推荐用eclipse插件自带的junit jar包)

创建后的项目结构如下:

QQ鎴浘20160330110307.jpg

 

然后我们写一个测试方法,testCreateTable

并且在创建db_activiti数据库;

我们要先来获取流程引擎配置,然后来配置流程引擎,要配置驱动包,url,数据库用户名,密码;

还要设置schema,这里的schema要设置成update。这样可以自动更新

配置后,我们通过配置来获取流程引擎。创建实例的时候我们就可以自动生成需要的25张表。

 

上代码:

	@Test
	public void testCreateTable(){
		ProcessEngineConfiguration pec=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration(); // 获取流程引擎配置
		pec.setJdbcDriver("com.mysql.jdbc.Driver"); // 配置驱动
		pec.setJdbcUrl("jdbc:mysql://localhost:3306/db_activiti"); // 配置连接地址
		pec.setJdbcUsername("root"); // 用户名
		pec.setJdbcPassword("123456"); // 密码
		
		/**
		 * 配置模式  true 自动创建和更新表
		 */
		
		pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
		
		// 获取流程引擎对象
		ProcessEngine pe=pec.buildProcessEngine(); 
	}

我们运行测试类,运行完我们刷新数据库,即可看到25张表:

QQ鎴浘20160330110908.jpg

 

ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。

ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

ACT_GE_*: 'GE'表示general。通用数据, 用于不同场景下,如存放资源文件。

这些表结构,还有一些辅助表。我们后续会详细解释,这里大家先大体了解即可;

 

完整代码打包下载:http://pan.baidu.com/s/1jIIqxZS

本文转载自:

共有 人打赏支持
粉丝 4
博文 162
码字总数 59007
作品 0
私信 提问
Activiti基础教程--01(简介、代码生成Activiti的25张表、Activiti配置文件activiti.cfg.xml生成25张表、在Eclipse上安装Activiti插件)

gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一、简介 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,...

xiaomin0322
2018/05/31
0
0
崛起于Springboot2.X之集成工作流Activiti5.22(42)

声明:该博客主要是Springboot1.X和Springboot2.X集成Activiti5.22版本,并说一下两个版本的搭建不同的地方 技术:Springboot2.0.3+mysql+jpa(自动生成25张表)+Activiti5.22 /然后Springboo...

木九天
2018/12/17
0
1
activiti 中的一些信息

activiti 中的service script task 执行脚本任务(java自身脚本不在此列 如需关注看 javaservice) scriptFormat : 1. javascript(JDK 自带的脚步解析特性) 虽然早就知道 但是还未去看过 2. g...

triankg
2015/02/15
0
0
activiti使用自己的用户表和群组表

1、自定义的Activiti用户组管理器,主要重写对用户群组的增删改查等操作。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38...

小城故事_
2015/11/24
135
0
Activiti 6.0 新特性 速递

说到工作流、Activiti,通常大家脑海里一闪的是:“OA系统”、“表单”、“人工审批流转”。 不可否认,OA系统里的表单审批流转是工作流的典型应用。 但是工作流的应用范围不仅限于此,如果提...

6pker
2016/08/22
2.3K
1

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
12
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部