Avtiviti 之初始化数据库、表说明分析

熊孩纸 阅读:179 2021-03-31 17:02:22 评论:0

创建Maven 项目

创建一个maven项目引入activiti相关jar包依赖即可。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <parent> 
    <groupId>com.zzg</groupId> 
    <artifactId>boot-activiti</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
  </parent> 
  <artifactId>boot-activiti-design</artifactId> 
   
  <properties> 
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
		<java.version>1.8</java.version> 
	</properties> 
  <dependencies> 
  	<dependency> 
			<groupId>org.activiti</groupId> 
			<artifactId>activiti-spring-boot-starter-basic</artifactId> 
			<version>5.22.0</version> 
		</dependency> 
  </dependencies> 
</project>

初始化

编写activiti 数据库初始化工具类:ActivitiDataBaseInit.java,完成activiti 数据库的初始化工作。

第一种方式:代码方式(已经测试)

package com.zzg.activiti.datatbase.init; 
 
import org.activiti.engine.ProcessEngine; 
import org.activiti.engine.ProcessEngineConfiguration; 
import org.junit.Test; 
 
/** 
 * activiti 数据库初始化化 
 * @author Administrator 
 * 
 */ 
public class ActivitiDataBaseInit { 
	@Test 
	public void init() { 
		// 创建流程引擎配置 
		  ProcessEngineConfiguration configuration = ProcessEngineConfiguration 
		      .createStandaloneInMemProcessEngineConfiguration(); 
		  // 设置数据源 
		  //    configuration.setDataSource(dataSource); 
		  // 如果不使用数据源, 可以通过配置连接信息来连接数据库 
		  configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver"); 
		  configuration.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/boot_activiti?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true"); 
		  configuration.setJdbcUsername("root"); 
		  configuration.setJdbcPassword("123456"); 
 
		  // 设置创建表的一个规则,有三种 
		  // DB_SCHEMA_UPDATE_FALSE = "false" 如果数据库里没有acti相关的表, 也不会创建 
		  // DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop" 不管数据库里有没acti的相关表, 都会先删除旧表再创建新表, 不推荐在生产中使用 
		  // DB_SCHEMA_UPDATE_TRUE = "true" 如果数据库里没有acti相关的表, 会自动创建 
		  // 仔细看看, 是不是有些类似于hibernate里的ddl-auto :) 
		  configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP); 
 
		  // 构建流程引擎, 这一步就会创建好表, 但基本上表内都是空的, 因为还没有部署, 再没有流程实例 
		  ProcessEngine processEngine = configuration.buildProcessEngine(); 
		  // 可以获取流程引擎的一些信息, 不过这个东西没啥用.. 
		  System.out.println(processEngine.getName()); 
	} 
	 
 
} 

检查数据库是否生成成功:

第二种方式:配置文件方式,编辑activiti.cfg.xml

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> 
    <!-- 数据库链接配置 --> 
    <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/boot_activiti?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true" /> 
    <property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" /> 
    <property name="jdbcUsername" value="root" /> 
    <property name="jdbcPassword" value="123456" /> 
    <!-- 数据库建表策略 --> 
    <property name="databaseSchemaUpdate" value="true" /> 
</bean>
// 1、创建配置对象(加载配置文件) 
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml"); 
// 2、通过配置对象,创建ProcessEngine 
ProcessEngine processEngine = configuration.buildProcessEngine(); 
System.out.println("processEngine" + processEngine);

第三种方式:项目初始化方式,添加如下代码:

// 1、创建ProcessEngine 
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 
System.out.println("processEngine" + processEngine);

Activiti 相关表介绍:

数据库里生成的表有如下这些

表名 说明
ACT_EVT_LOG 事件日志表(实验性质)
ACT_GE_BYTEARRAY 通用的流程定义和流程资源
ACT_GE_PROPERTY 系统相关属性
ACT_HI_ACTINST 历史的流程实例
ACT_HI_ATTACHMENT 历史的流程附件
ACT_HI_COMMENT 历史的批注信息
ACT_HI_DETAIL 历史的流程运行中的细节信息
ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系
ACT_HI_PROCINST 历史的流程实例
ACT_HI_TASKINST 历史的任务实例
ACT_HI_VARINST 历史的流程运行中的变量信息
ACT_ID_GROUP
ACT_ID_INFO 用户详细信息
ACT_ID_MEMBERSHIP 用户和组关系的中间表
ACT_ID_USER 用户表
ACT_RE_DEPLOYMENT 部署的流程信息
ACT_RE_MODEL 流程模型信息
ACT_RE_PROCDEF 流程定义信息
ACT_RU_DEADLETTER_JOB 存储执行失败的任务表(异步)
ACT_RU_EVENT_SUBSCR 运行时事件
ACT_RU_EXECUTION 运行时流程执行实例
ACT_RU_IDENTITYLINK 运行时用户关系信息
ACT_RU_JOB 运行时作业(异步)
ACT_RU_SUSPENDED_JOB 暂停运行的任务(异步)
ACT_RU_TASK 运行时任务
ACT_RU_TIMER_JOB 任务定时器表(异步)
ACT_RU_VARIABLE 运行时变量表
ACT_PROCDEF_INFO 流程定义信息表

从上面表名的前缀应该可以看出来

  • ACT_GE 通用类
  • ACT_HI 历史记录类
  • ACT_ID 用户信息类
  • ACT_RE 流程实例类
  • ACT_RU 运行时类

 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

一个IT知识分享的公众号