# 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。