用ant生成jbpm的数据库表

来源:互联网 发布:云购中奖计算 编辑:程序博客网 时间:2024/04/29 06:10
jBPM 需要数据库支持, jBPM 会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。 jBPM 使用 Hibernate 来做为自己的存储层,因此只要是 Hibernate 支持的数据库, jBPM 也就支持。

  注:在JBoss 自带的示例中,并没有设置数据库,那是因为 jBPM 默认使用的是内存数据库 hsqldb 。

  下面是网上查找到的关于JBPM中MySQL和Oracle数据库,大家可以参考:

 本文先以 MySQL 为例,然后再以 Oracle 为例,来谈谈 jBPM 的数据库初始化操作。

  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-3.1.1 下的子目录 jbpm 改名为 jbpm.3 ,否则在执行下面的 ant 命令时会报如 jbpm.3 目录不存在的错误:

  D:\jbpm-starters-kit-3.1.1\jbpm-db\build.xml:361: The following error occurred while executing this line:

  D:\jbpm-starters-kit-3.1.1\jbpm-db\build.xml:68: Basedir D:\jbpm-starters-kit-3.1.1\jbpm.3 does not exist

  在 DOS 窗下,进入 D:\jbpm-starters-kit-3.1.1\jbpm-db 目录,执行如下命令:

  ant mysql.scripts

  执行成功后,在 D:\jbpm-starters-kit-3.1.1\jbpm-db\build\mysql\scripts 目录里生成了四个 sql 文件,它们做什么用的一看名字就知道了。在 MySQL 客户端中执行“ mysql.create.sql ”脚本,这样将在 jbpm 库中创建一个个的数据表

 2、 Oracle

  先安装好 Oracle 服务器。我们公司有现存的 Oracle 服务器,也提供给了我一个属于我自己的用户名,一登录就可以任意在我的库之下创建表了。所以这一步就省了,没有的自个先装好吧。

参考上面 MySQL 的步骤,基本一样:

  (1) 将 jbpm 改名为 jbpm.3

  (2)进入 D:\jbpm-starters-kit-3.1.1\jbpm-db 目录, 再执行 ant oracle.scripts

  (3) 用 jbpm-db\build\oracle\scripts 目录的 oracle.create.sql 脚本,在 Oracle 中生成 jBPM 的所有表。在“ PLSQL Developer ”中可以新建一个 Command Windows 窗口然后输入命令: @D:\jbpm-starters-kit-3.1.1\jbpm-db\build\oracle\s cripts\oracle.create.sql

3、 sqlserver

  由于我的电脑安装的是SqlServer,故下面来介绍sqlserver数据库:

  1、 建数据库

  Sqlserver中创建数据库,库名:jbpm

  2、 生成建表的SQL语句并建表

  将 jbpm-starters-kit-3.1.1 下的子目录 jbpm 改名为 jbpm.3 ,否则在执行下面的 ant 命令时会报如 jbpm.3 目录不存在的错误:

  E:\software\jbpm-starters-kit-3.1.2\jbpm-db\build. xml:361: The following error occurred while executing this line:

  E:\software\jbpm-starters-kit-3.1.2\jbpm-db\build. xml:68: Basedir E:\software\jbpm-starters-kit-3.1.2\jbpm.3 does not exist
注意:一定记得把选项配置里也改过来

  在 DOS 窗下,进入E:\software\jbpm-starters-kit-3.1.1\jbpm-db 目录,执行如下命令:

  ant mssql.scripts 报错:

  compile.jbpm.test:

  [mkdir] Created dir: E:\software\jbpm-starters-kit-3.1.2\jbpm.3\build\c lasse

  s.jbpm.test

  [javac] Compiling 255 source files to E:\software\jbpm-starters-kit-3.1.2\jb

  pm.3\build\classes.jbpm.test

  [javac] E:\software\jbpm-starters-kit-3.1.2\jbpm.3\src\jav a.jbpm.test\org\jb

  pm\persistence\db\MockConnection.java:13: org.jbpm.persistence.db.MockConnection

  不是抽象的,并且未覆盖 java.sql.Connection 中的抽象方法 createStruct(java.lang.

  String,java.lang.Object[])

  [javac] public class MockConnection implements Connection {

  [javac] ^

  [javac] 注意:某些输入文件使用或覆盖了已过时的 API。

  [javac] 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。

  [javac] 1 错误

  修改jbpm-starters-kit-3.1.2\jbpm.3\src\java.jbpm.test\ org\jb

  pm\persistence\db\MockConnection.java源代码,覆盖setTypeMap()方法

查看我的机子上的JDK版本,运行

  java –version java version "1.3.1_01"

  javac –version javac 1.6.0_05

  解决方法:

  最后在做到后面第一个简单实例后,又尝试了如何解决这个问题,发现在jbpm-starters-kit-3.1.2\jbpm-db\build目录下也已建好了建立数据库的sql语句。

如果你一定要你ant生成sql语句:

  1)修改jbpm-starters-kit-3.1.2\jbpm.3\ build.properties(下面的路径你可根据你的安装路径来修改):

  # ant.home is destdir="build/classes.jbpm" source="1.4" target="1.4" debug="on" fork="yes">

  全部改为1.6(因为我的JDK是1.6.0_05),只要你的JDK是1.5的以上就OK,改为你的JDK版本)。

  运行命令前,先删除E:\software\jbpm-starters-kit-3.1.4\jbpm-db目录下的build文件夹。以便后来更加可以看到你下面操作的结果,否则你不知道你生成的文件在哪里。

  如输入ant mssql.scripts

  你将在E:\software\jbpm-starters-kit-3.1.4\jbpm-db\build目录下看到与你数据库相对应的目录mssql下多了一个scripts文件夹即:jbpm-starters-kit-3.1.4\jbpm-db\build\mssql\script s,该文件夹里下生成了以下几个文件:

  mssql.clean.sql mssql.create.sql mssql.drop.create.sql mssql.drop.sql

0 0
原创粉丝点击