📅  最后修改于: 2023-12-03 15:13:25.763000             🧑  作者: Mango
Apache Derby 是一个基于 Java 的关系型数据库,它可以嵌入到应用程序中使用。本文将介绍 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 中,可以使用 OFFSET
和 FETCH 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 提供了丰富的数据检索功能,包括查询、过滤、排序和分页。程序员可以根据具体业务场景选择合适的方式来检索数据。