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

问题描述 投票:2回答:1

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

该应用程序功能齐全,但现在我需要在其中实现Derby的嵌入式版本。我有0个这样的数据库的经验,因为Dropwizard已经给了我足够的麻烦,我无法弄清楚如何开始。

我是否创建了一个新类并开始使用,如何创建这些SQL文件以及如何存储数据?我找不到类似问题的具体答案,如果有详细的解释和示例,请随时向我提供资源。我知道这是一个noob问题,但我几乎没有学习HTTP如何工作(基础知识),并设法使用Angular和Dropwizard完全创建一个功能REST。

database rest http derby dropwizard
1个回答
2
投票

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

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

enter image description here

来自Oracle

在类路径中找到的任何JDBC 4.0驱动程序都会自动加载。 (但是,必须使用方法Class.forName手动加载JDBC 4.0之前的任何驱动程序。)

这意味着如果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。这意味着您可以创建表,插入行,更新行,删除行等。

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

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

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


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

public final class EmbeddedDerby {
   private static final DataSource DATA_SOURCE;

   static {
      // Initialize DATA_SOURCE with EmbeddedDataSource
   }

   ...

   public static Connection getConnection() {
     return DATA_SOURCE.getConnection();
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.