如何使用maven运行derby ij交互式SQL脚本工具

时间:2016-12-12 10:58:10

标签: java database maven derby

我正在使用以下maven依赖项进行derby

<dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.8.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbyclient</artifactId>
            <version>10.8.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbynet</artifactId>
            <version>10.8.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbytools</artifactId>
            <version>10.8.3.0</version>
        </dependency>

我能够运行连接到derby的java代码,并且能够在java代码中从表中获取记录。

但是我想运行&#34; derby ij交互式SQL脚本工具&#34;所以请建议我,因为我不知道在maven的情况下运行它。

如果我们直接从Apache网站下载derby.zip,我知道如何运行它

1 个答案:

答案 0 :(得分:0)

我的pom中有以下依赖项:

<!-- https://mvnrepository.com/artifact/org.apache.derby/derby -->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.13.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derbytools -->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbytools</artifactId>
    <version>10.13.1.1</version>
</dependency>

在maven编译后,将下载依赖项,我在我的Unix系统上运行ij:

java -cp ~/.m2/repository/org/apache/derby/derbytools/10.13.1.1/derbytools-10.13.1.1.jar org.apache.derby.tools.ij

您也可以从Java代码运行ij:

static void derby(String jdbcUrl, String initScriptPath)
throws SQLException, UnsupportedEncodingException, FileNotFoundException {
    Connection conn = DriverManager.getConnection(jdbcUrl);
    org.apache.derby.tools.ij.runScript(conn, new FileInputStream(initScriptPath), StandardCharsets.UTF_8.name(), System.out, StandardCharsets.UTF_8.name());
}

如果经常使用交互式ij工具,可以将路径放在CLASSPATH中的derbytools jar中。在这种情况下,可能是一个好主意,在/ usr / local或类似的地方进行derby安装。这样,您就不会依赖maven存储依赖关系的方式。