ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# Derby 的安装&配置 > 原文: [http://zetcode.com/db/apachederbytutorial/install/](http://zetcode.com/db/apachederbytutorial/install/) 在接下来的页面中,我们将展示如何安装 Derby 并根据需要配置 Derby。 我们从 [db.apache.org/derby/](http://db.apache.org/derby/) 下载了最新版本的 Derby。 我们创建一个安装目录,并将压缩文件解压缩到该目录。 ```java $ wget http://tux.rainside.sk/apache//db/derby/db-derby-10.13.1.1/db-derby-10.13.1.1-bin.zip ``` 使用`wget`工具,我们下载 Derby 版本 10.13.1。 ```java $ unzip db-derby-10.13.1.1-bin.zip $ cd db-derby-10.13.1.1-bin/ ``` 我们解压缩档案并进入目录。 ```java $ ls bin docs javadoc lib NOTICE test demo index.html KEYS LICENSE RELEASE-NOTES.html ``` 我们列出了安装目录的内容。 在`bin`子目录中,我们有几个 Derby 工具。 `docs`目录以 HTML 和 PDF 格式提供 Derby 的文档。 在`lib`子目录中,存在使用 Derby 所需的各种 JAR 文件。 ## Java 数据库 从 Java 6 开始,DDK 就包含在 JDK 中。Java DB 是 Apache Derby 的受支持版本,并且包含与 Apache Derby 相同的二进制文件。 ```java $ ls $JAVA_HOME/db 3RDPARTY bin lib LICENSE NOTICE README-JDK.html RELEASE-NOTES.html ``` 在 JDK 安装目录中,我们有一个名为`db`的子目录,可在其中找到 Java DB 文件。 在发行说明的“概述”部分中,我们阅读以下内容: Derby 是使用标准 SQL 和 JDBC 作为其 API 的纯 Java 关系数据库引擎。 Derby 功能包括: * 具有 JDBC 驱动程序的嵌入式引擎 * 网络服务器 * 网络客户端 JDBC 驱动程序 * 命令行工具:`ij`(SQL 脚本),`dblook`(模式转储)和`sysinfo`(系统信息) ## 环境变量 设置环境变量是可选的。 使用环境变量将使我们的生活更轻松。 ```java $ export DERBY_HOME=~/bin/derby $ export PATH=$PATH:~/bin/derby/bin $ export DERBY_OPTS=-Dderby.system.home=/home/janbodnar/.derby ``` 我们将`DERBY_HOME`变量设置为 Derby 安装目录。 某些工具可能会使用此变量。 然后,将`bin`子目录添加到`PATH`变量中。 这样,我们不必完全指定 Derby 工具的路径。 在`DERBY_OPTS`环境变量中,我们可以设置各种 Derby 或 Java 相关选项。 例如,我们设置`derby.system.home`属性。 ```java $ java -jar $DERBY_HOME/lib/derbyrun.jar sysinfo ------------------ Java Information ------------------ Java Version: 1.8.0_111 Java Vendor: Oracle Corporation Java home: /home/janbodnar/bin/jdk1.8.0_111/jre Java classpath: /home/janbodnar/bin/jdk1.8.0_111/db/lib/derbyrun.jar OS name: Linux OS architecture: amd64 OS version: 4.4.0-66-generic ... ``` 我们使用`derbyrun.jar`文件来执行`sysinfo`工具,以获取有关 Java 和 Derby 的一些信息。 ## 建立数据库 Derby 没有像 MySQL 或 Oracle 这样的`CREATE DATABASE`语句。 我们必须通过创建连接并设置连接属性`create=true`来创建数据库。 ```java $ $DERBY_HOME/bin/ij ij version 10.11 ij> ``` 我们启动`ij`工具。 ```java ij> CONNECT 'jdbc:derby:tmpdb;user=tmpuser;create=true'; ``` 在 Derby 系统目录中创建`tmpdb`数据库,并与新创建的数据库建立连接。 该连接以嵌入式模式创建。 ```java $ ls ~/.derby/ derby.log testdb tmpdb ``` 该数据库在 Derby 系统目录中创建。 ```java ij> CREATE TABLE FRIENDS(ID INT PRIMARY KEY, NAME VARCHAR(25)); 0 rows inserted/updated/deleted ij> INSERT INTO FRIENDS(ID, NAME) VALUES(1, 'Jane'); 1 row inserted/updated/deleted ij> INSERT INTO FRIENDS(ID, NAME) VALUES(2, 'Thomas'); 1 row inserted/updated/deleted ij> INSERT INTO FRIENDS(ID, NAME) VALUES(3, 'Beky'); 1 row inserted/updated/deleted ``` 我们创建一个`FRIENDS`表,并向其中添加三行。 ```java ij> SELECT * FROM FRIENDS; ID |NAME ------------------------------------- 1 |Jane 2 |Thomas 3 |Beky 3 rows selected ``` 我们检查数据。 ```java ij> SHOW TABLES IN TMPUSER; TABLE_SCHEM |TABLE_NAME |REMARKS ------------------------------------------------------------------------ TMPUSER |FRIENDS | 1 row selected ``` 创建连接时,已指定用户名。 用户名是数据库架构,在其中创建`FRIENDS`表。 ```java ij> DISCONNECT; ij> SHOW CONNECTIONS; No connections available. ij> EXIT; $ ``` 我们从`tmpdb`数据库断开连接。 `SHOW CONNECTIONS`语句通知没有打开的连接。 我们使用`EXIT`命令退出`ij`工具。 ```java $ rm -rf ~/.derby/tmpdb/ ``` 我们从 Derby 系统中删除数据库。 Derby 没有`DROP DATABASE`语句。 这是 Derby 教程章节的结尾,在该章中,我们已经安装并配置了 Derby。