1、Activiti 创建表

本文介绍如何使用Activiti流程引擎搭建环境,包括通过不同方式创建流程引擎实例,并配置数据库连接及更新策略。此外还列举了Activiti在数据库中创建的各种表及其用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


public class ActivitiTest
{
@Test
public void createTable()
{
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
configuration.setJdbcDriver("com.mysql.jdbc.Driver")
.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8")
.setJdbcUsername("root")
.setJdbcPassword("654321a");

/**
* ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP 先删除表在创建
* ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE 不能自动创建表,需要表存在
* ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE 如果没有表自动创建,存在就直接使用
*/
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

ProcessEngine processEngine = configuration.buildProcessEngine();
System.out.println("processEngine:" + processEngine);
}

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

@Test
public void createTableByDefault()
{
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
System.out.println("processEngine:" + processEngine);
}
}


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- <bean id="dbProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:db.properties</value>
<value>file:activiti-rest.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="ignoreResourceNotFound" value="true" />
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
<property name="mailServerHost" value="localhost" />
<property name="mailServerPort" value="5025" />
<property name="jobExecutorActivate" value="false" />
<property name="customFormTypes">
<list>
<bean class="org.activiti.rest.form.UserFormType"/>
<bean class="org.activiti.rest.form.ProcessDefinitionFormType"/>
<bean class="org.activiti.rest.form.MonthFormType"/>
</list>
</property>
</bean>

<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
<bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
<bean id="formService" factory-bean="processEngine" factory-method="getFormService" />
<bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
<bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" /> -->

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncodeing=utf8" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="654321a" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>


建表情况
资源库流程规则表
act_re_deployment 部署信息表
act_re_model 流程设计模型部署表
act_re_procdef 流程定义数据表
运行时数据库表
act_ru_execution 运行时流程执行实例表
act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
act_ru_task 运行时任务节点表
act_ru_variable 运行时流程变量数据表
历史数据库表
act_hi_actinst 历史节点表
act_hi_attachment 历史附件表
act_hi_comment 历史意见表
act_hi_identitylink 历史流程人员表
act_hi_detail 历史详情表,提供历史变量的查询
act_hi_procinst 历史流程实例表
act_hi_taskinst 历史任务实例表
act_hi_varinst 历史变量表
组织机构表
act_id_group 用户组信息表
act_id_info 用户扩展信息表
act_id_membership 用户与用户组对应信息表
act_id_user 用户信息表
这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套
通用数据表
act_ge_bytearray 二进制数据表
act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录
### 如何在 Spring Boot 项目中使用 Activiti 7 创建数据库 要在 Spring Boot 中集成并配置 Activiti 7 来自动创建数据库,可以按照以下方法操作: #### 配置依赖项 首先,在 `pom.xml` 文件中引入必要的依赖项。这包括 Spring Boot 和 Activiti 的相关库。 ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>spring-boot-starter-basic</artifactId> <version>7.x.x</version> <!-- 替换为最新版本 --> </dependency> <!-- 数据库驱动 (例如 MySQL) --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 这些依赖会帮助设置基本的流程引擎以及连接到所需的数据库[^1]。 #### 配置数据源 接下来,在 `application.properties` 或 `application.yml` 文件中定义数据源属性。以下是基于 MySQL 的示例配置: ```properties # DataSource configuration spring.datasource.url=jdbc:mysql://localhost:3306/activiti_db?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Hibernate settings for schema generation spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect ``` 通过上述配置,Hibernate 将负责根据实体类自动生成数据库结构。如果需要手动控制生成逻辑,则可以通过调整 `ddl-auto` 参数来实现[^2]。 #### 自动化机制 Activiti 提供了一种内置方式用于初始化其所需的数据模型。当启动应用程序时,默认情况下它会在目标数据库上执行 DDL 脚本以构必需的格体系。此功能通常无需额外干预即可正常工作;然而,某些场景下可能希望禁用该行为或者定制迁移策略。 要启用或修改这一过程,请确保已正确定义好上面提到的数据源参数,并确认所使用的 JDBC URL 指向一个有效且可写入的目标位置。此外还可以利用 Liquibase 工具进一步增强变更管理能力。 #### 测试环境验证 最后一步是运行程序测试整个流程是否成功完成。一旦应用加载完毕后访问任意 RESTful 接口端点(如 `/actuator/health`) ,应该可以在指定好的数据库实例里看到由 activiti 自动生成的一系列新单。 ```java @SpringBootApplication public class ActivitiDemoApplication { public static void main(String[] args) { SpringApplication.run(ActivitiDemoApplication.class, args); } } ``` 以上代码片段展示了标准的应用入口函数声明形式。只要一切设定无误,那么随着项目的初次部署就会触发相应的DDL语从而立起完整的存储框架。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值