📅  最后修改于: 2023-12-03 14:39:16.247000             🧑  作者: Mango
Apache Derby是一个轻型的Java数据库,具有无服务器的特点,不需要单独的DB服务器进程,它是作为应用程序的一个组成部分来运行的,这使得Derby非常适合嵌入式应用程序,同时也可用于网络环境。
本文将介绍Apache Derby的部署模式,让你更好地了解如何将Derby部署到你的应用程序中。
Derby有两种可用的部署模式:嵌入式模式和网络模式。
嵌入式模式是最常用的模式,这种模式下数据存储在应用程序的本地文件系统中,不需要单独的DB服务器进程。在应用程序中,可以直接使用JDBC API 访问Derby数据库。以下是实现嵌入式模式的Java代码:
public void embededMode() {
Connection conn = null;
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
conn = DriverManager.getConnection("jdbc:derby:sampleDB;create=true");
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE sampleTable (col1 int, col2 varchar(50))");
PreparedStatement psInsert = conn.prepareStatement("INSERT INTO sampleTable VALUES (?,?)");
psInsert.setInt(1, 100);
psInsert.setString(2, "Derby is awesome!");
psInsert.executeUpdate();
ResultSet rs = stmt.executeQuery("select * from sampleTable where col1 = 100");
while (rs.next()) {
System.out.println(rs.getInt(1) + "\t" + rs.getString(2));
}
stmt.executeUpdate("drop table sampleTable");
} catch (ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
网络模式适用于多个客户端共享同一个Derby数据库的情况,同时它提供更多DBA功能,如备份、恢复、灾难恢复等。在网络模式下,需要启动Derby Network Server来监听来自客户端的请求,然后客户端使用JDBC API从网络服务器连接Derby数据库。以下是实现网络模式的Java代码:
public void networkMode() {
try {
NetworkServerControl serverControl = new NetworkServerControl();
serverControl.start(null);
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/sampleDB;create=true", "", "");
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE sampleTable (col1 int, col2 varchar(50))");
PreparedStatement psInsert = conn.prepareStatement("INSERT INTO sampleTable VALUES (?,?)");
psInsert.setInt(1, 100);
psInsert.setString(2, "Derby is awesome!");
psInsert.executeUpdate();
ResultSet rs = stmt.executeQuery("select * from sampleTable where col1 = 100");
while (rs.next()) {
System.out.println(rs.getInt(1) + "\t" + rs.getString(2));
}
stmt.executeUpdate("drop table sampleTable");
serverControl.shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
本文介绍了Apache Derby的两种部署模式:嵌入式模式和网络模式。通过这两种模式的实现,你可以使用JDBC API来访问Derby数据库。
Derby是一个灵活的数据库,适用于嵌入式应用程序和网络应用程序。虽然Derby是一个轻量级的数据库,但它也提供了一些DBA功能,以满足企业级应用程序的需求。