Java如何从ResultSet中检索值?

这是有关如何ResultSet通过在数据库中执行SQL查询来从返回的数据中读取数据的另一个示例。

我们首先创建与数据库的连接。创建一个PreparedStatement以执行查询以从books表中获取一些数据。

执行完之后,PreparedStatement我们将有一个ResultSet对象。要迭代中的所有数据,ResultSet我们next()在while循环中调用方法。当没有更多记录可读取该方法时,返回false。该ResultSet对象还提供了一些读取字段值的方法,该方法的名称与表的每个字段上存储的数据类型相对应。

读取使用的数据ResultSet的方法(例如getString(),getInt(),getFloat(),等),我们可以使用列名或字段的列索引中的SQL语句读取。

让我们看下面的完整代码片段:

package org.nhooo.example.jdbc;

import java.sql.*;

public class ResultSetExample {
    public static void main(String[] args) throws Exception {

        String url = "jdbc:mysql://localhost/nhooo";
        String username = "root";
        String password = "";

        try (Connection connection =
                 DriverManager.getConnection(url, username, password)) {

            String query = "SELECT isbn, title, published_year, price " +
                "FROM books";

            PreparedStatement ps = connection.prepareStatement(query);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                // 使用列名读取值
                String isbn = rs.getString("isbn");
                String title = rs.getString("title");
                int publishedYear = rs.getInt("published_year");

                // 使用列索引读取值
                double price = rs.getDouble(4);

                System.out.printf("%s, %s, %d, %.2f\n", isbn, title,
                    publishedYear, price);
            }
        }
    }
}

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
</dependency>

Maven中央