jBPM數(shù)據(jù)庫表的創(chuàng)建
Jbpm把流程定義和流程執(zhí)行都會持久化到數(shù)據(jù)庫中,所以我們需要在數(shù)據(jù)庫中創(chuàng)建所需的數(shù)據(jù)庫表,數(shù)據(jù)庫表的創(chuàng)建有以下三種方式。
1.手工創(chuàng)建
在入門套件解壓后的jbpm-db\build目錄中有已經(jīng)生成好的創(chuàng)建各種數(shù)據(jù)庫的數(shù)據(jù)庫表的腳本文件,我們只需要使用相應(yīng)腳本文件在數(shù)據(jù)庫中創(chuàng)建表即可。
如果不存在腳本文件,可以參考使用jbpm-db下的build.xml中的任務(wù)生成腳本,具體不再詳述。
2.Ant任務(wù)創(chuàng)建
如下Ant任務(wù)腳本:
- <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的配置信息,可以直接從發(fā)行包中拷貝使用,具體位置和數(shù)據(jù)庫連接信息根據(jù)實際情況調(diào)整。classpath.ant定義為指向Jbpm庫(還包括相關(guān)庫,如Hibernate相關(guān)庫)。
也可以把創(chuàng)建庫表的任務(wù)與流程定義的打包和部署集成起來使用,請參考build.depoly.xml(位于入門套件解壓后的jbpm文件夾中)中的create.db任務(wù)。
3.編程創(chuàng)建
- //獲取配置實例,默認(rèn)是根據(jù)default.jbpm.cfg.xml。
- //也可以根據(jù)指定的配置文件獲取配置實例。
- JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
- //創(chuàng)建數(shù)據(jù)庫表
- jbpmConfiguration.createSchema();
以上代碼的執(zhí)行需要依賴Hibernate的配置文件hibernate.cfg.xml。
注:在創(chuàng)建數(shù)據(jù)表之前,數(shù)據(jù)表所在數(shù)據(jù)庫必須已經(jīng)存在。即只是創(chuàng)建Table,而把Table創(chuàng)建在哪個Database中,該Database必須已經(jīng)存在。
【編輯推薦】