一年前我一直在开发一个 Java 项目,并使用 Codehaus Mojo SQLJ 插件 将 .sqlj 文件转换为可访问的 Java 类。由于我保存了旧存储库,我看到以下
<plugin>
已插入我的 pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sqlj-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<goals>
<goal>sqlj</goal>
</goals>
<configuration>
<sqljDirs>
<sqljDir>src/main/sqlj/</sqljDir>
</sqljDirs>
<generatedSourcesDirectory>../sales-persistance/src/main/java</generatedSourcesDirectory>
<generatedResourcesDirectory>../sales-persistance/src/main/resources/ro/ibm/sqlj</generatedResourcesDirectory>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>sqlj4</artifactId>
<version>4.29.29</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
它使用
com.ibm.db2:sqlj4
依赖项进行 sqlj 翻译。根据我的研究,SQLJ 可以使用两个翻译器之一进行翻译:IBM 或 Oracle 的。根据他们的文档,此类转换器仅随其数据库提供(例如,Oracle 及其数据库 23c 等),而不是作为独立包提供。
一年前,这个
com.ibm.db2:sqlj4
翻译器在 MavenCentral 上可用。目前,它不再可用。从 GitHub 上找到的旧项目来看,Oracle 还提供了一个无需数据库客户端即可使用的 SQLJ 转换器 (com.oracle:sqlj
),但我似乎无法在任何 Maven 存储库中找到它了。
我找不到独立版本的翻译器有什么原因吗?另外,是否有可能下载 jar 文件并通过
pom.xml
将它们添加到本地? Oracle 和 IBM 不为这些翻译器提供任何下载链接。
从 Oracle 12.2 开始,不再支持服务器端 SQLJ。
Oracle 数据库内部的 SQLJ 支持
从 Oracle Database 12c 第 2 版 (12.2) 开始,Oracle 不支持运行服务器端 SQLJ 代码。
Oracle 支持使用客户端 SQLJ。但是,Oracle 不支持使用服务器端 SQLJ,包括在数据库环境中运行存储过程、函数和触发器。
Oracle SQLJ 入门文档 指出:
2.1.2 使用 Oracle SQLJ 实现的要求
使用 Oracle SQLJ 实现需要满足以下条件:
可使用 JDBC 驱动程序访问的数据库系统
SQLJ 转换器的类文件
以下文件中提供了与翻译器相关的类:
ORACLE_HOME/sqlj/lib/translator.jar
注意:有关
的更多信息,请参阅“设置路径和类路径”。translator.jar
SQLJ 运行时的类文件。
ORACLE_HOME/sqlj/lib/runtime12.jar
注意:自 Oracle Database 11g 第 1 版以来,
已被弃用。请改用runtime12ee.jar
。runtime12.jar
因此,您应该能够从数据库安装中获取适当的 JAR 文件。