如何在 Dropwizard 项目中创建和开始使用嵌入式 Apache Derby 数据库(Angular 7 前端)
How to create and get started with Embedded Apache Derby database in Dropwizard project (Angular 7 front-end)
我正在通读 Derby 文档并遵循所有说明。我已成功安装它(将其提取到我的 Linux 机器并设置 DERBY_HOME 路径)。我有一个完整的 REST API 项目,带有 Angular 7 前端和 Dropwizard 后端。我在后端硬编码了一些数据,并创建了我需要的所有 HTTP API 方法(GET、POST、PATCH、DELETE)。
该应用程序功能齐全,但现在我需要在其中实施 Derby 的嵌入式版本。我对此类数据库的经验为 0,而且由于 Dropwizard 已经给我带来了足够的麻烦,我不知道如何开始。
我是否创建一个新的 class 并从那里开始,如何创建这些 SQL 文件以及如何存储数据?我找不到类似问题的具体答案,如果那里已经有详细的解释和例子,请随时提供给我资源。我知道这是一个菜鸟问题,但我只是勉强了解了 HTTP 的工作原理(基础知识)并设法使用 Angular 和 Dropwizard 完全创建了一个功能性 REST。
将嵌入式数据库视为一个成熟的数据库,它与您的应用程序和 运行 一起打包在同一个 JVM 中,而不是处于不同的环境中,并且可能需要网络连接。两者之间适用相同的机制。
嵌入式 Derby 驱动程序位于 derby.jar
文件中,因此需要将其放在应用程序的 classpath 中。它应该位于 %DERBY_INSTALL%\lib\
下,其中 %DERBY_INSTALL%
是安装目录。你可以通过图像看到它包含的位置。
来自 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"
在退出主应用程序之前。这不是强制性的,但建议这样做。
您可以创建一个实用程序 class 来保存 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();
}
}
我正在通读 Derby 文档并遵循所有说明。我已成功安装它(将其提取到我的 Linux 机器并设置 DERBY_HOME 路径)。我有一个完整的 REST API 项目,带有 Angular 7 前端和 Dropwizard 后端。我在后端硬编码了一些数据,并创建了我需要的所有 HTTP API 方法(GET、POST、PATCH、DELETE)。
该应用程序功能齐全,但现在我需要在其中实施 Derby 的嵌入式版本。我对此类数据库的经验为 0,而且由于 Dropwizard 已经给我带来了足够的麻烦,我不知道如何开始。
我是否创建一个新的 class 并从那里开始,如何创建这些 SQL 文件以及如何存储数据?我找不到类似问题的具体答案,如果那里已经有详细的解释和例子,请随时提供给我资源。我知道这是一个菜鸟问题,但我只是勉强了解了 HTTP 的工作原理(基础知识)并设法使用 Angular 和 Dropwizard 完全创建了一个功能性 REST。
将嵌入式数据库视为一个成熟的数据库,它与您的应用程序和 运行 一起打包在同一个 JVM 中,而不是处于不同的环境中,并且可能需要网络连接。两者之间适用相同的机制。
嵌入式 Derby 驱动程序位于 derby.jar
文件中,因此需要将其放在应用程序的 classpath 中。它应该位于 %DERBY_INSTALL%\lib\
下,其中 %DERBY_INSTALL%
是安装目录。你可以通过图像看到它包含的位置。
来自 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"
在退出主应用程序之前。这不是强制性的,但建议这样做。
您可以创建一个实用程序 class 来保存 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();
}
}