jbpm4 连接指定数据库

我这里以mysql5为例   环境jdk1.6 Eclipse(ee版)jbpm4.4

 

 

jbpm4 有18张表,简单介绍如下:

JBPM4_DEPLOYMENT   流程定义表 
JBPM4_DEPLOYPROP 流程定义属性表
 

JBPM4_EXECUTION  流程实例表 
JBPM4_HIST_ACTINST 流程活动(节点)实例表 

JBPM4_HIST_DETAIL  流程历史详细表 

JBPM4_HIST_PROCINST 流程实例历史表 

JBPM4_HIST_TASK  流程任务实例历史表 
JBPM4_HIST_VAR  流程变量(上下文)历史表 


JBPM4_ID_GROUP 组表 
JBPM4_ID_MEMBERSHIP 用户角色表 
JBPM4_ID_USER  用户表 
JBPM4_JOB  定时表 
JBPM4_LOB  存储表
 
JBPM4_PARTICIPATION 参与者表 
JBPM4_SWIMLANE  泳道表 
JBPM4_TASK 任务表
 
JBPM4_VARIABLE 上下文表 

红 色的表为经常使用的表.这里不使用JBPM自己的权限角色定义.

发布一个流程deploy后
jbpm4_deployment新增一条记录
jbpm4_deployprop新增三条记录
jbpm4_lob 新增一条记录

开始一个流程startProcessInstanceByKey后
jbpm4_execution新增一条记录
jbpm4_hist_actinst 新增一条记录
jbpm4_hist_procinst新增一条记录
jbpm4_hist_task新增一条记录
jbpm4_task 新增一条记录

流程定义相关的布署信息就存储在(1) JBPM4_DEPLOYMENT、(2) JBPM4_DEPLOYPROP 及(3)JBPM4_LOB 中。上传一个包含png和jpdl.xml的zip包后,JBPM4_DEPLOYMENT多一条记录JBPM4_DEPLOYPROP 多三条, JBPM4_LOB多两条。 
(4)J B PM4_HIST_PROCINST (5) JBPM4_HIST_ACTINST 分别存放的是Process Instance、Activity Instance的历史记录。
(6)JBPM4_EXECUTION 主要是存放JBPM4的执行信息,Execution机制代 替了JBPM3的Token机制(详细参阅JBPM4的PVM机制,过段时间我也会进一步分析)。
(7)JBPM4_TASK 存放需要人来完成的Activities,需要人来参与完成的Activity 被称为Task。
(8)JBPM4_PARTICIPATION 存放 Participation的信息,Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。
(9)JBPM4_SWIMLANE。 Swim Lane是一种Runtime Process Role。通过Swim Lane,多个Task可以一次分配到同一Actor身上。
(10) JBPM4 _VARIABLE 存 的是进行时的临时变量。
(11) JBPM4_HIST_DETAIL 保存 Variable的变更记录。 
(12)JBPM4_HIST_VAR
 保存历史的变量  
(13) JBPM4_HIST_TASK Task的历史信 息。 
(14)JBPM4_ID_GROUP (15)JBPM_ID_MEMBERSHIP (16)JBPM4_ID_USER 这三张表很常见了,基 本的权限控制,关于用户认证方面建议还是自己开发一套,JBPM4的功能太简单了,使用中有很多需要难以满足。 
(17) JBPM4_JOB 存放的是Timer 的定义。

(18) JBPM4_PROPERTY  JBPM引擎参数表。

 

 

以上来自互联网

 

连接数据库,首先在mysql中建立一个数据库(jbpmdb)

然后打开jbpm安装目录下..\install\src\db\create\jbpm.mysql.create.sql 

文件内容如下

create table JBPM4_DEPLOYENT(

 
 DBID_ bigint not null,
        NAME_ longtext,
        TIMESTAMP_ bigint,
        STATE_ varchar(255),
        primary key (DBID_)
    ) type=InnoDB;

    create table JBPM4_DEPLOYPROP (
        DBID_ bigint not null,
        DEPLOYMENT_ bigint,
        OBJNAME_ varchar(255),
        KEY_ varchar(255),
        STRINGVAL_ varchar(255),
        LONGVAL_ bigint,
        primary key (DBID_)
    ) type=InnoDB;

    create table JBPM4_EXECUTION (
        DBID_ bigint not null,
        CLASS_ varchar(255) not null,
        DBVERSION_ integer not null,
        ACTIVITYNAME_ varchar(255),
        PROCDEFID_ varchar(255),
        HASVARS_ bit,
        NAME_ varchar(255),
        KEY_ varchar(255),
        ID_ varchar(255) unique,
        STATE_ varchar(255),
        SUSPHISTSTATE_ varchar(255),
        PRIORITY_ integer,
        HISACTINST_ bigint,
        PARENT_ bigint,
        INSTANCE_ bigint,
        SUPEREXEC_ bigint,
        SUBPROCINST_ bigint,
        PARENT_IDX_ integer,
        primary key (DBID_)
    ) type=InnoDB;
后面内容略。。。。。

  将如上内容在sql编译器中执行,生成18张表。

 

修改项目文件下的jbpm.hibernate.cfg.xml

 

<session-factory>
  
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpmdb?characterEncoding=UTF-8</property>
     <property name="hibernate.connection.username">root</property>
     <property name="hibernate.connection.password">wawa</property>
     <property name="hibernate.hbm2ddl.auto">create-drop</property>
     <property name="hibernate.format_sql">true</property>
     
     <mapping resource="jbpm.repository.hbm.xml" />
     <mapping resource="jbpm.execution.hbm.xml" />
     <mapping resource="jbpm.history.hbm.xml" />
     <mapping resource="jbpm.task.hbm.xml" />
     <mapping resource="jbpm.identity.hbm.xml" />
     
  </session-factory>
 

就是将dialect,driver_class,url,username,password 设置成自己的数据库相关信息。

 

这样就完成了。测试一下,deploy一个新的流程,在原先建立的数据库中的jbpm4_deployprop表里,可以查看到相应的数据。


你可能感兴趣的:(sql,mysql,xml,Hibernate,jbpm)