我正在阅读Derby文档并遵循所有说明。我已成功安装它(将其解压缩到我的Linux机器并设置DERBY_HOME路径)。我有一个完整的REST API项目,包括Angular 7前端和Dropwizard后端。我在后端硬编码了一些数据,并创建了我需要的所有HTTP API方法(GET,POST,PATCH,DELETE)。
该应用程序功能齐全,但现在我需要在其中实现Derby的嵌入式版本。我有0个这样的数据库的经验,因为Dropwizard已经给了我足够的麻烦,我无法弄清楚如何开始。
我是否创建了一个新类并开始使用,如何创建这些SQL文件以及如何存储数据?我找不到类似问题的具体答案,如果有详细的解释和示例,请随时向我提供资源。我知道这是一个noob问题,但我几乎没有学习HTTP如何工作(基础知识),并设法使用Angular和Dropwizard完全创建一个功能REST。
将嵌入式数据库视为一个成熟的数据库,它不是在不同的环境中,也可能需要网络连接,而是与您的应用程序一起打包并在同一个JVM中运行。两者之间适用相同的机制。
嵌入式Derby驱动程序位于derby.jar
文件中,因此需要将其放在应用程序的类路径中。它应位于%DERBY_INSTALL%\lib\
下,其中%DERBY_INSTALL%
是安装目录。您可以通过图像查看它所包含的位置。
来自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"
在退出主应用程序之前。它不是强制性的,但建议使用。
您可以创建一个实用程序类来保存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();
}
}