【入门篇】Activiti配置数据库执行策略

来源:互联网 发布:b50板球座子淘宝 编辑:程序博客网 时间:2024/05/22 15:19

需求

使用工作流之前需要建立工作流特定的23张或者25张表,在这里,有两种方式建立工作流的数据库。

方案

  • 方案一:

直接利用sql脚本在数据库执行,从而生成生成指定数据表的数据库

  • 方案二:

利用配置文件方式,配置数据库的生成策略。

如下:

首先新建一个数据库,例如:activititest0916

配置文件activiti.cfg.xml:

<!-- 数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><!-- activititest0916当前数据库名称username:mysql用户名password:mysql访问密码 --><property name="url" value="jdbc:mysql://localhost:3306/activititest0916" /><property name="username" value="root" /><property name="password" value="root" /><property name="maxActive" value="3" /><property name="maxIdle" value="1" /></bean><!-- ProcessEngineConfigurationProcessEngineConfiguration:用于创建ProcessEngine --><bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><!-- 数据源 --><property name="dataSource" ref="dataSource" /><!-- activiti数据库表处理策略 --><!--  false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。true: 构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。(常用)create-drop: 构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。drop-create:先删除表再创建表。(常用,使用完成后改为true)create: 构建流程引擎时创建数据库表, 关闭流程引擎时不删除这些表。 --><property name="databaseSchemaUpdate" value="true"/></bean>


  • Java程序创建数据库思路:

通过java程序创建activiti核心引擎对象(ProceccEngine),创建引擎对象时候,自动检测数据库环境,根据设置activiti数据库操作策略,操作数据库。

package cn.itcast.activiti.db;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngineConfiguration;/** *  * <p>Title: CreateDb.java</p> * <p>Description:创建数据库 </p> * <p>Copyright: Copyright (c) 2017</p> * <p>Company: www.itcast.cn</p> * @author 大米时代·周丽同 * @date 2017年10月23日上午11:50:54 * @version 1.0 */public class CreateDb {public static void main(String[] args){/* * false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。true: 构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。(常用)create-drop: 构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。drop-create:先删除表再创建表。(常用,使用完成后改为true)create: 构建流程引擎时创建数据库表, 关闭流程引擎时不删除这些表。 *///创建引擎对象,自动检查数据库环境,由于策略设置为true,如果表不存在自动创建表//指定activiti.cfg.xml文件String resource = "activiti.cfg.xml";//创建ProcessEngineConfiguration//使用createProcessEngineConfigurationFromResource默认去activiti.cfg.xml里面去找bean为processEngineConfigurationProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource);//使用下边的方法,指定processEngineConfiguration的id//ProcessEngineConfiguration configuration2 = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource, beanName);//通过ProcessEngineConfiguration创建引擎对象ProcessEngineProcessEngine processEngine = configuration.buildProcessEngine();System.out.println(processEngine);}}

右键-run as-Java Application

刷新数据库即可以看到生成的数据库表。