Activiti工作流笔记(2)

时间:2023-03-10 08:12:13
Activiti工作流笔记(2)

1.Activiti工作数据表

Activiti用来存放流程数据的表共使用23张表,表名都是以"ACT_"开头,底层操作默认使用mybatis操作

工作流Activiti的表是用来存储流程数据的,而业务的数据需要用户自己创建和维护

在使用Activiti时一定需要业务去关联流程。

以下以MySql数据库为例:

1)使用代码方式创建Activiti工作流需要的23张表

@Test
public void createTable_1() {
//创建流程引擎配置对象
ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
//连接数据库的配置
//配置数据库驱动:对应不同数据库类型的驱动
processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
//配置数据库的JDBC URL
processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8");
//配置连接数据库的用户名
processEngineConfiguration.setJdbcUsername("root");
//配置连接数据库的密码
processEngineConfiguration.setJdbcPassword("root");
//数据库建表策略
/**
* public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在
public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表
public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表
*/
processEngineConfiguration.setDatabaseSchemaUpdate(processEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//工作流的核心对象,ProcessEnginee对象
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
System.out.println(processEngine);
}

2)使用XML配置文件方式创建工作流需要的23张表

配置文件:activiti.cfg.xml

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!-- 连接数据的配置 -->
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8"></property>
<property name="jdbcUsername" value="root"></property>
<property name="jdbcPassword" value="root"></property>
<!-- 没有表创建表 -->
<property name="databaseSchemaUpdate" value="true"></property>
</bean>

调用代码:

@Test
public void createTable_2(){
ProcessEngineConfiguration processEngineConfiguration= ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti-context.xml");
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
System.out.println("processEngine:"+processEngine);
}