Jbpm把流程定义和流程执行都会持久化到数据库中,所以我们需要在数据库中创建所需的数据库表,数据库表的创建有以下三种方式。
1.手工创建
在入门套件解压后的jbpm-db/build目录中有已经生成好的创建各种数据库的数据库表的脚本文件,我们只需要使用相应脚本文件在数据库中创建表即可。
如果不存在脚本文件,可以参考使用
jbpm-db
下的
build.xml
中的任务生成脚本,具体不再详述。
2.Ant任务创建
如下Ant任务脚本:
<target name="create.db2" depends="" description="creates database with the jbpm tables">
<taskdef name="jbpmschema" classname="org.jbpm.ant.JbpmSchemaTask">
<classpath refid="classpath.ant" />
</taskdef>
<jbpmschema actions="create"
cfg="${basedir}/config.files/hibernate.cfg.xml"
properties="${basedir}/config.files/create.db.hibernate.properties"/>
</target>
需要两个配置文件hibernate.cfg.xml(位于入门套件解压后的jbpm/src/config.files文件夹中)和create.db.hibernate.properties(位于入门套件解压后的jbpm/src/resources/hsqldb文件夹中),这两个文件指定了Hibernate的配置信息,可以直接从发行包中拷贝使用,具体位置和数据库连接信息根据实际情况调整。classpath.ant定义为指向Jbpm库(还包括相关库,如Hibernate相关库)。
也可以把创建库表的任务与流程定义的打包和部署集成起来使用,请参考
build.depoly.xml
(位于入门套件解压后的
jbpm
文件夹中)中的
create.db
任务。
3.编程创建
//获取配置实例,默认是根据default.jbpm.cfg.xml。
//也可以根据指定的配置文件获取配置实例。
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
//创建数据库表
jbpmConfiguration.createSchema();
以上代码的执行需要依赖
Hibernate
的配置文件
hibernate.cfg.xml
。
注:在创建数据表之前,数据表所在数据库必须已经存在。即只是创建Table,而把Table创建在哪个Database中,该Database必须已经存在。