1. 概述
在这个教程中,我们将学习Apache Derby数据库引擎。这是Apache软件基金会作为开源项目开发的一个基于Java的关系型数据库引擎。
我们将从安装和配置开始,然后了解与之交互的工具。创建一个示例数据库后,我们将学习如何使用Derby的命令行工具执行SQL命令。最后,我们将演示如何通过纯JDBC和Spring Boot应用程序编程连接到数据库。
2. 部署模式
Apache Derby有两种基本部署选项:嵌入式模式和客户端/服务器模式。
在嵌入式模式下,Derby作为单一用户Java应用程序的一部分运行于同一Java虚拟机(JVM)内。由于其自动启动和关闭,它通常对终端用户不可见,也不需要管理员干预。在这种模式下,我们可以设置临时数据库,而无需管理它。
在客户端/服务器模式下,当由提供跨网络多用户连接的应用程序启动时,Derby在托管服务器的Java虚拟机(JVM)中运行。
3. 安装和配置
让我们来看看如何安装Apache Derby。
3.1. 安装
首先,可以从这里下载最新版本的Apache Derby。然后,我们解压下载的文件。提取的安装包包含以下子目录:
$ ls
bin demo docs index.html javadoc KEYS lib LICENSE NOTICE RELEASE-NOTES.html test
-
bin
包含执行工具和设置环境的脚本 -
demo
包含示例程序 -
javadoc
包含API文档 -
docs
包含Apache Derby文档 -
lib
包含Apache Derby的.jar文件 -
test
包含Apache Derby的回归测试
3.2. 配置
在开始数据库引擎之前,我们需要配置一些内容。
首先,设置DERBY_HOME
环境变量为我们提取的Apache Derbybin
目录的位置。例如,如果Derby安装在/opt/derby-db
目录下,可以使用如下命令:
export DERBY_HOME=/opt/derby-db
接下来,将DERBY_HOME/bin
目录添加到PATH环境变量中,以便我们在任何目录下都可以运行Derby脚本:
export PATH="$DERBY_HOME/bin:$PATH"
3.3. Derby库
在lib
目录下,Apache Derby提供了多种库:
$ ls
derbyclient.jar derbynet.jar derbyshared.jar
derby.jar derbyoptionaltools.jar derbytools.jar
derbyrun.jar derby.war derbyLocale_XX.jar ...
每个库的描述如下:
-
derby.jar
: 嵌入式环境所需。在客户端/服务器环境中,仅服务器端需要此库。 -
derbyshared.jar
: 无论我们运行嵌入式引擎、网络服务器、远程客户端还是数据库工具,都需要此库。 -
derbytools.jar
: 运行所有Apache Derby工具(IJ、DBLook和导入/导出)所需的。如果运行网络服务器或我们的应用程序直接引用JDBC驱动,也需要此库。 -
derbyrun.jar
: 使用此库启动Apache Derby工具。 -
derbynet.jar
: 启动Apache Derby网络服务器所需的。 -
derbyclient.jar
: 使用Apache Derby网络客户端驱动所需的。 -
derbyLocale_XX.jar
: 用于本地化Apache Derby消息的。
4. 工具
Apache Derby提供了针对不同应用的多个工具。我们可以使用derbyrun.jar
运行Apache Derby工具和实用程序,而无需设置java CLASSPATH环境变量。**derbyrun.jar
文件必须与其它Derby JAR文件位于同一目录。**
4.1. IJ
IJ是一个基于JDBC的Java命令行应用程序。它的主要目的是允许交互式或通过脚本执行Derby SQL语句。
首先,运行IJ工具:
$ $DERBY_HOME/bin/ij
ij version 10.13
ij>
我们也可以使用以下命令执行它:
$ java -jar $DERBY_HOME/lib/derbyrun.jar ij
ij version 10.13
ij>
请注意,所有命令以分号结尾。如果不带分号执行命令,命令行会跳到下一行。
在使用SQL语句的部分,我们将看到如何使用IJ执行多个命令。
此外,IJ可以通过properties
来执行命令,这可以帮助我们节省重复工作,利用IJ工具支持的属性。