Java Database Connectivity (JDBC) 是 Java 中用于访问各种数据库的标准方式。Apache Derby 是一个开源的关系数据库,它完全用 Java 编写,并可以在任何 Java 虚拟机上运行。以下是使用 Apache Derby 数据库的简单指南。
1. 安装 Apache Derby
首先,您需要下载 Apache Derby 的 JAR 文件。您可以从 Apache Derby 的官方网站下载最新版本的 JAR 文件。
wget https://www.apache.org/dyn/closer.cgi/db/derby/10.15.2.1/derby-10.15.2.1-bin.tar.gz
tar -xvzf derby-10.15.2.1-bin.tar.gz
cd derby-10.15.2.1/lib
将 derbyclient.jar 和 derbynet.jar 添加到您的 Java 类路径中。
export CLASSPATH=$CLASSPATH:./derbyclient.jar:./derbynet.jar
2. 创建数据库和表
在 Apache Derby 中,您可以通过 JDBC 连接到数据库并创建表。以下是一个简单的例子:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DerbyExample {
public static void main(String[] args) {
String url = "jdbc:derby:memory:exampleDB;create=true";
try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement()) {
String sql = "CREATE TABLE employees (" +
"id INT NOT NULL," +
"name VARCHAR(100)," +
"age INT," +
"PRIMARY KEY (id))";
stmt.executeUpdate(sql);
System.out.println("Table created successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在这个例子中,我们创建了一个名为 employees 的表,它有三个字段:id、name 和 age。
3. 插入数据
要向表中插入数据,您可以使用 PreparedStatement:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DerbyInsertExample {
public static void main(String[] args) {
String url = "jdbc:derby:memory:exampleDB";
String sql = "INSERT INTO employees (id, name, age) VALUES (?, ?, ?)";
try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, 1);
pstmt.setString(2, "Alice");
pstmt.setInt(3, 30);
pstmt.executeUpdate();
System.out.println("Data inserted successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在这个例子中,我们向 employees 表中插入了一条记录。
4. 查询数据
要查询数据,您可以使用 PreparedStatement:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DerbySelectExample {
public static void main(String[] args) {
String url = "jdbc:derby:memory:exampleDB";
String sql = "SELECT * FROM employees WHERE age > ?";
try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, 25);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name") + ", Age: " + rs.getInt("age"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在这个例子中,我们查询了年龄大于 25 的所有员工。
5. 关闭数据库连接
最后,不要忘记关闭数据库连接:
try (Connection conn = DriverManager.getConnection(url)) {
// ...
} catch (SQLException e) {
e.printStackTrace();
}
在这个例子中,try-with-resources 语句确保了 Connection 对象在操作完成后会被自动关闭。
以上就是使用 Apache Derby 数据库的简单指南。Apache Derby 是一个简单易用的数据库,非常适合用于教学和开发环境。
