「Activiti精品 悟纤出品」基于mysql初始化「图图为啥消失了」- 第325篇

前言

       一觉醒来,发现昨天创建的流程全不见了,这时候真的是有一万只“草泥马”从脑中飘过,到底是谁偷走了我的图。

一、问题分析 - 基于activiti6

1.1 问题描述

我们发现,当我们重启tomtcat的时候,我们之前构建的数据都统统不见了:

(1)用户数据:张三、李四你们都去哪里了,为什么不带上我?

(2)流程图:我通宵达旦创建的流程图,为什么说走就走?

(3)表单:表单怎么也一声不响的就不见了?

       也就是我们在上一节所有操作的数据,统统都没有了。

1.2 问题的产生

       细心的小盆友,可能已经知道什么原因了,我们在之前安装activiti6的时候,说了一个很重要的信息:

默认用的是自带的内存数据库h2(在启动日志中可以看到:datasource driver: org.h2.Driver)。

师傅:看到划重点的部分没有哦,内库,呸呸呸,我说的是什么,内存数据库

       什么,还不知道什么是内库呐?(你今天穿木有?)

内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。

       我们知道Tomcat关闭最后JVM的内存就会释放了,那么存放在内存中的数据也就一起被JVM回收释放掉了。当重新启动Tomcat之后,会重新分配一块内存区域。

1.3 问题解决

       既然内存数据库只能爽一时,不能爽一世,那么就搞个持久的数据库呗。对了,就是你经常用的持久化的数据库mysql。

二、activiti6基于mysql的脚本构建

2.1 支持的数据库

       我们打开/activiti-6.0.0/database/create,可以看到activit6支持的数据库:

activiti.db2.create.engine.sql 

activiti.db2.create.history.sql 

activiti.db2.create.identity.sql 

activiti.h2.create.engine.sql 

activiti.h2.create.history.sql 

activiti.h2.create.identity.sql 

activiti.hsql.create.engine.sql 

activiti.hsql.create.history.sql 

activiti.hsql.create.identity.sql 

activiti.mssql.create.engine.sql 

activiti.mssql.create.history.sql 

activiti.mssql.create.identity.sql 

activiti.mysql.create.engine.sql 

activiti.mysql.create.history.sql 

activiti.mysql.create.identity.sql 

activiti.mysql55.create.engine.sql 

activiti.mysql55.create.history.sql 

activiti.oracle.create.engine.sql 

activiti.oracle.create.history.sql 

activiti.oracle.create.identity.sql 

activiti.postgres.create.engine.sql 

activiti.postgres.create.history.sql 

activiti.postgres.create.identity.sql

从脚本上看,activiti支持以下几种数据库

db2、h2、hsqldb、sql server、mysql、oracle、postgres

本次以mysql为例。

2.2 创建数据库

       我们先创建一个数据库:activiti6_demo:

CREATE DATABASE activiti6_demo default charset utf8 COLLATE utf8_general_ci; 

2.3 执行SQL脚本

通过脚本方式,将以下四个脚本依次执行即可,我这里的mysql版本是8.0.12:

activiti.mysql.create.engine.sql 

activiti.mysql.create.history.sql 

activiti.mysql.create.identity.sql

如果mysql的版本低于5.6.4的话,需要执行以下几个脚本,原因是由于5.6.4以下的mysql版本不支持timestamps类型。

activiti.mysql55.create.engine.sql 

activiti.mysql55.create.history.sql 

activiti.mysql.create.identity.sql 

   运行成功的话,共有28个表,所有的表都以ACT_开头。第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。

(1)ACT_RE_*: RE表示repository(仓库),存储流程静态资源,如流程模型文件等

(2)ACT_RU_*: RU表示runtime(运行时),存储activiti运行时产生的数据,比如实例信息,用户任务信息,job信息等,另外,当流程结束后,运行时数据将会被删除,以保证数据量尽可能少,保证性能。

(3)ACT_ID_*: ID表示identity(认证),存储认证信息,比如用户,组等。

(4)ACT_HI_*: HI表示history(历史),存储流程历史数据,比如实例信息,变量数据等。

(5)ACT_GE_*: GE表示general(通用),存储通用数据

     这里就不展开说明,如若有需要后续文章在展开细说。

       还有另外一种初始化方式:DbSchemaCreate方式初始化,这种方式比较费劲,需要创建一个工程,导入jar包,执行代码,这里不介绍了。

。。。。。。。。。。。。。。。。。

版权原因,完整文章,请参考如下:「Activiti精品 悟纤出品」基于mysql初始化「图图为啥消失了」- 第325篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值