gpt4 book ai didi

database - 如何在 Dropwizard 项目(Angular 7 前端)中创建和开始使用嵌入式 Apache Derby 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:00 27 4
gpt4 key购买 nike

我正在通读 Derby 文档并遵循所有说明。我已经成功安装了它(将它提取到我的 Linux 机器上并设置了 DERBY_HOME 路径)。我有一个完整的 REST API 项目,带有 Angular 7 前端和 Dropwizard 后端。我在后端硬编码了一些数据,并创建了我需要的所有 HTTP API 方法(GET、POST、PATCH、DELETE)。

该应用程序功能齐全,但现在我需要在其中实现 Derby 的嵌入式版本。我对此类数据库的经验为 0,而且由于 Dropwizard 已经给我带来了足够多的麻烦,我不知道如何开始。

我是否创建一个新类并从那里开始,如何创建那些 SQL 文件以及如何存储数据?我找不到类似问题的具体答案,如果那里已经有详细的解释和例子,请随时提供给我资源。我知道这是一个菜鸟问题,但我只是勉强了解了 HTTP 的工作原理(基础知识)并设法使用 Angular 和 Dropwizard 完全创建了一个功能性 REST。

最佳答案

将嵌入式数据库视为一个成熟的数据库,它不是在不同的环境中,也可能需要网络连接,而是与您的应用程序一起打包并在同一个 JVM 中运行。相同的机制适用于两者。

嵌入式 Derby 驱动程序位于 derby.jar 文件中,因此需要将其放在应用程序的 classpath 中。它应该位于 %DERBY_INSTALL%\lib\ 下,其中 %DERBY_INSTALL% 是安装目录。您可以通过图像看到它所在的位置。

enter image description here

来自 Oracle

Any JDBC 4.0 drivers that are found in your class path are automatically loaded. (However, you must manually load any drivers prior to JDBC 4.0 with the method Class.forName.)

这意味着如果 Derby 驱动程序是 JDBC 4.0 驱动程序,则除了通过 DriverManager 获取连接外,您无需执行任何其他操作。
如果它不是 JDBC 4.0 驱动程序,则必须使用

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();

显然,您将需要上面的那段代码。
现在只需获取 Connection 对象即可。

DriverManager.getConnection("jdbc:derby:dbName;create=true");

从那里开始,您可以根据需要创建Statement(s)。这意味着您可以创建表、插入行、更新行、删除行等。

要正常关闭嵌入式 Derby 数据库,您需要使用

DriverManager.getConnection("jdbc:derby:dbName;shutdown=true"); // see the same database name "dbName"

在退出主应用程序之前。这不是强制性的,但建议这样做。


您可以创建一个实用程序类来保存 EmbeddedDataSource ( docs ),它将围绕您的应用程序提供连接。

public final class EmbeddedDerby {
private static final DataSource DATA_SOURCE;

static {
// Initialize DATA_SOURCE with EmbeddedDataSource
}

...

public static Connection getConnection() {
return DATA_SOURCE.getConnection();
}
}

关于database - 如何在 Dropwizard 项目(Angular 7 前端)中创建和开始使用嵌入式 Apache Derby 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com