```markdown
Apache Derby 是一个开源的关系型数据库管理系统,它是用 Java 编写的,并且提供了轻量级、完全嵌入式的数据库解决方案。本文将介绍如何在 Java 中连接 Derby 数据库。
下载 Apache Derby
可以从 Apache Derby 官网 下载 Derby。下载后,解压到你希望存放 Derby 的目录中。
配置环境变量
为了方便在命令行中使用 Derby,我们可以将 Derby 的 bin
目录添加到环境变量 PATH
中。例如,如果 Derby 被解压到 C:\derby
目录下,添加 C:\derby\bin
到 PATH
。
添加 Derby JDBC 驱动到 Java 项目中
将 Derby 的 JDBC 驱动包(通常为 derbyclient.jar
或 derby.jar
)添加到项目的类路径中。可以通过 IDE 设置或直接在命令行编译时指定类路径。
在 Java 中,使用 Class.forName()
方法加载 JDBC 驱动类。对于 Derby,我们需要加载 org.apache.derby.jdbc.EmbeddedDriver
。
```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;
public class DerbyConnectionExample { public static void main(String[] args) { // 加载 Derby JDBC 驱动 try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); System.out.println("Derby JDBC 驱动已加载"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } ```
连接到 Derby 数据库的 URL 格式如下:
jdbc:derby:<dbName>;create=true
<dbName>
是数据库名称。如果指定了 create=true
,则会创建一个新的数据库(如果数据库不存在)。
```java public class DerbyConnectionExample { public static void main(String[] args) { // 加载 Derby JDBC 驱动 try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); System.out.println("Derby JDBC 驱动已加载");
// 连接到 Derby 数据库
String dbURL = "jdbc:derby:myDatabase;create=true";
Connection conn = DriverManager.getConnection(dbURL);
System.out.println("成功连接到 Derby 数据库");
// 关闭连接
conn.close();
System.out.println("数据库连接已关闭");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
} ```
连接成功后,可以通过 Statement
或 PreparedStatement
执行 SQL 查询。
```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
public class DerbyQueryExample { public static void main(String[] args) { try { // 加载 Derby JDBC 驱动 Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); String dbURL = "jdbc:derby:myDatabase;create=true"; Connection conn = DriverManager.getConnection(dbURL);
// 创建 Statement 对象并执行查询
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM myTable");
// 输出查询结果
while (rs.next()) {
System.out.println("Column1: " + rs.getString(1));
System.out.println("Column2: " + rs.getString(2));
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
} ```
在 Derby 中,可以通过 SQL 语句创建表并插入数据。
```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;
public class DerbyCreateTableExample { public static void main(String[] args) { try { // 加载 Derby JDBC 驱动 Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); String dbURL = "jdbc:derby:myDatabase;create=true"; Connection conn = DriverManager.getConnection(dbURL);
// 创建表
Statement stmt = conn.createStatement();
String createTableSQL = "CREATE TABLE myTable (id INT PRIMARY KEY, name VARCHAR(100))";
stmt.executeUpdate(createTableSQL);
System.out.println("表创建成功");
// 插入数据
String insertSQL = "INSERT INTO myTable (id, name) VALUES (1, 'Alice')";
stmt.executeUpdate(insertSQL);
System.out.println("数据插入成功");
// 关闭连接
stmt.close();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
} ```
在操作完成后,务必关闭数据库连接,避免资源泄漏。
java
conn.close();
嵌入式模式与客户端模式
Derby 支持嵌入式模式和客户端/服务器模式。在嵌入式模式下,应用程序直接通过 JDBC 连接到数据库;在客户端模式下,应用程序连接到运行在服务器上的 Derby 数据库。
数据库路径
Derby 的数据库路径可以是一个相对路径,或者是绝对路径。为了避免路径问题,建议使用相对路径,特别是在开发过程中。
关闭连接和资源
使用完连接、语句和结果集等数据库资源后,务必调用 close()
方法关闭它们,防止数据库资源浪费。
本文介绍了如何在 Java 中连接并操作 Apache Derby 数据库。从加载 JDBC 驱动、建立连接到执行 SQL 查询、创建表、插入数据等步骤进行了详细说明。希望这篇文章能帮助你更好地理解如何在 Java 中使用 Derby 数据库。 ```