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必须已经存在。
【编辑推荐】