📜  Apache Derby-检索数据(1)

📅  最后修改于: 2023-12-03 15:13:25.763000             🧑  作者: Mango

Apache Derby-检索数据

Apache Derby 是一个基于 Java 的关系型数据库,它可以嵌入到应用程序中使用。本文将介绍 Derby 中的数据检索操作。

连接到 Derby 数据库

使用 Derby 数据库时,需要先连接到数据库。可以使用 DriverManager.getConnection() 方法连接数据库,如下所示:

import java.sql.*;

Connection conn = DriverManager.getConnection("jdbc:derby:/path/to/database");
查询数据

在 Derby 中,可以使用 SQL 语句查询数据。以下是一个简单的查询示例:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println(id + " : " + name);
}

在上面的示例中,首先使用 conn.createStatement() 方法创建一个 Statement 对象,然后使用 executeQuery() 方法执行查询。查询的结果被存储在一个 ResultSet 对象中,并可以使用 next() 方法逐行读取查询结果。在每一行中,可以使用列名或列编号获取列的值。

过滤数据

如果需要过滤数据,可以在 SQL 查询语句中使用 WHERE 子句,例如:

ResultSet rs = stmt.executeQuery("SELECT * FROM mytable WHERE id > 10");

在上面的示例中,只返回 id 大于 10 的行。

排序数据

可以在 SQL 查询语句中使用 ORDER BY 子句来排序查询结果,例如:

ResultSet rs = stmt.executeQuery("SELECT * FROM mytable ORDER BY name ASC");

在上面的示例中,按 name 列升序排序结果。

分页查询

在 Derby 中,可以使用 OFFSETFETCH FIRST 子句进行分页查询。例如:

PreparedStatement stmt = conn.prepareStatement("SELECT * FROM mytable ORDER BY id OFFSET ? ROWS FETCH FIRST ? ROWS ONLY");
stmt.setInt(1, 10); // 设置 OFFSET 参数
stmt.setInt(2, 5); // 设置 FETCH FIRST 参数

ResultSet rs = stmt.executeQuery();
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println(id + " : " + name);
}

在上面的示例中,查询结果按 id 排序,跳过前 10 条记录(OFFSET=10),然后取出接下来的 5 条记录(FETCH FIRST=5)。

总结

Apache Derby 提供了丰富的数据检索功能,包括查询、过滤、排序和分页。程序员可以根据具体业务场景选择合适的方式来检索数据。