4 数据库初始化
jBPM 需要数据库支持, jBPM 会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。 jBPM 使用 Hibernate 来做为自己的存储层,因此只要是 Hibernate 支持的数据库, jBPM 也就支持。
本文先以 MySQL 为例,然后再以 Oracle 为例,来谈谈 jBPM 的数据库初始化操作。
注:在上面的 JBoss 自带的示例中,并没有设置数据库,那是因为 jBPM 默认使用的是内存数据库 hsqldb 。
4.1 MySQL
1 、首先安装 MySQL 。
MySQL 的安装比较简单,网上也有很多文章,本文不再赘述。本指南所用 MySQL 版本为 MySQL 4.1 ( for windows )。再找一个 MySQL 客户端,目的是方便查看数据库中的数据,本文推荐使用 MySQL 网站上免费提供的“ MySQL Query Brower ”,当然你用其他的客户端也行,比如 MySQL-Front 。
2 、建库
MySQL 中创建一个库,库名: jbpm
3 、生成建表的 SQL 语句并建表
将 jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate> 下的子目录 jbpm 改名为 jbpm.3 ,否则在执行下面的 ant 命令时会报如 jbpm.3 目录不存在的错误:
D:/jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate>/jbpm-db/build.xml:361: The following error occurred while executing this line:
D:/jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate>/jbpm-db/build.xml:68: Basedir D:/jbpm-starters-kit-3.1.1/jbpm.3 does not exist
在 DOS 窗下,进入 D:/jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate>/jbpm-db 目录,执行如下命令:
ant mysql.scripts
执行成功后,在 D:/jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate>/jbpm-db/build/mysql/scripts 目录里生成了四个 sql 文件,它们做什么用的一看名字就知道了。在 MySQL 客户端中执行“ mysql.create.sql ”脚本,这样将在 jbpm 库中创建一个个的数据表。
4.2 Oracle
先安装好 Oracle 服务器。我们公司有现存的 Oracle 服务器,也提供给了我一个属于我自己的用户名,一登录就可以任意在我的库之下创建表了。所以这一步就省了,没有的自个先装好吧。
访问 Oracle 推荐用“ PLSQL Developer ”。不过要连接 Oracle 还要在本机上装上 Oracle 自己的客户端程序,里面提供了 JDBC 包和一些配置。要连接服务器还得配置一下,我一般都是不用 GUI 而直接改 tnsnames.ora 文件,在我的电脑里此文件的目录地址是: D:/oracle/ora92/network/ADMIN/tnsnames.ora ,内容如下 ( 两面有两个配置了 ) :
# TNSNAMES.ORA Network Configuration File: E:/oracle/ora92/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
WXXRDB_192.168.3.2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = wxxrDB)
(SERVER = DEDICATED)
)
)
WXXRDB_192.168.4.2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = wxxrDB)
(SERVER = DEDICATED)
)
)
前面都是 Oracle 的一些知识,不会的 Google 一下吧。最后配置好后,用 PLSQL Developer 输入你的用户名和密码联接到 Oracle ,就算 OK 了。
参考上面 MySQL 的步骤,基本一样:
(1) 将 jbpm 改名为 jbpm.3
(2) 再执行 ant oracle.scripts
(3) 用 jbpm-db/build/oracle/scripts 目录的 oracle.create.sql 脚本,在 Oracle 中生成 jBPM 的所有表。在“ PLSQL Developer ”中可以新建一个 Command Windows 窗口然后输入命令: @D:/jbpm-starters-kit-<chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</chsdate>/jbpm-db/build/oracle/scripts/oracle.create.sql