第二课 JBPM数据库的构建

jBPM 需要数据库支持, jBPM 会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。 jBPM 使用 Hibernate 来做为自己的存储层,因此只要是 Hibernate 支持的数据库, jBPM 也就支持。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

下面是网上查找到的关于JBPMMySQLOracle数据库,大家可以参考:

本文先以 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 服务器,也提供给了我一个属于我自己的用户名,一登录就可以任意在我的库之下创建表了。所以这一步就省了,没有的自个先装好吧。

访问 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-3.1.1\jbpm-db\build\oracle\scripts\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\classe

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\java.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()方法

再次运行,报错如下:

mysql.scripts:

prepare:

compile.jbpm:

compile.identity:

compile.jbpm.test:

[javac] Compiling 55 source files to E:\download\eclipsejbpm\jbpm-starters-k

it-3.1.4\jbpm.3\build\classes.jbpm.test

[javac] E:\download\eclipsejbpm\jbpm-starters-kit-3.1.4\jbpm.3\src\java.jbpm

.test\org\jbpm\persistence\db\MockConnection.java:174: -source 1.4 中不支持注释

[javac] (请使用 -source 5 或更高版本以启用注释)

[javac] @Override

[javac] ^

[javac] E:\download\eclipsejbpm\jbpm-starters-kit-3.1.4\jbpm.3\src\java.jbpm

.test\org\jbpm\persistence\db\MockConnection.java:244: -source 1.4 中不支持泛型

[javac] (请使用 -source 5 或更高版本以启用泛型)

[javac] public void setTypeMap(Map<String, Class<?>> map) throws SQLExceptio

n {

[javac] ^

[javac] 2 错误

查看我的机子上的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 only used in the ant.install.libs target for copying the junit and clover libs

ant.home=E:\software\ant

# jbpm.home is only to allow build scripts to open the browser with the html test results

jbpm.home=E:\software\jbpm-starters-kit-3.1.4\jbpm.3

2) 修改jbpm-starters-kit-3.1.2\jbpm.3\ build.properties

<javac srcdir="src/java.jbpm" destdir="build/classes.jbpm" source="1.4" target="1.4" debug="on" fork="yes">

全部改为1.6(因为我的JDK1.6.0_05),只要你的JDK1.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\scripts,该文件夹里下生成了以下几个文件:

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

OK,问题解决了。

套用在舟山四年每夜从收音机里传出电台主持人的告别声:
晚安,我的广州!

晚安,我的朋友!

可以安心入睡了,晚安,everybody

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值