Avtiviti 之初始化数据库、表说明解析
熊孩纸
阅读:595
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.作者投稿可能会经我们编辑修改或补充。