OBridge 提供了一个简单的 Java 源代码生成器,用于调用 Oracle PL/SQL 包过程。
支持的输入、输出参数和返回值包括:
以下类型无法实现,因为 JDBC 驱动程序不支持它们:
生成的代码可兼容 Java 1.6 编译。
从 releases 下载最新版本。
下载后,创建一个 XML 配置文件:
<configuration>
<jdbcUrl>jdbc:oracle:thin:scott/tiger@localhost:1521:xe</jdbcUrl> <!-- obridge 的 JDBC 连接字符串 -->
<sourceRoot>.</sourceRoot> <!-- 源代码生成位置 - 相对于此配置文件 -->
<rootPackageName>hu.obridge.test</rootPackageName> <!-- 根 Java 包名,生成器会构建目录结构 -->
<packages>
<entityObjects>objects</entityObjects> <!-- 对象类型将放入此包 -->
<converterObjects>converters</converterObjects> <!-- 转换工具类将放入此包 -->
<procedureContextObjects>context</procedureContextObjects> <!-- 过程参数实体将放入此包 -->
<packageObjects>packages</packageObjects> <!-- 过程调用工具类将放入此包 -->
</packages>
</configuration>
运行生成器:
java -jar obridge.jar -c <obridge-config.xml>
OBridge 连接到指定的数据库并生成所需的类。
例如,你有以下 PL/SQL 代码:
Create Or Replace Package simple_procedures is
Function simple_func(a In Varchar2,
b In Out Varchar2,
c Out Varchar2) Return Number;
End simple_procedures;
生成的源代码:
public class SimpleProcedures {
public static SimpleProceduresSimpleFunc simpleFunc(String a, String b, Connection connection) throws SQLException { ... }
}
你可以调用 SimpleProcedures.simpleFunc 方法:
SimpleProceduresSimpleFunc ret = SimpleProcedures.simpleFunc("hello", "world", conn); // conn 是数据库连接
返回对象将持有输入和输出参数,已转换为 Java 类型。
public class SimpleProceduresSimpleFunc {
private BigDecimal functionReturn;
private String a;
private String b;
private String c;
// getters, setters
}