使用Java执行SQL查询获取结果为List

在开发过程中,经常会遇到需要执行SQL查询并将结果存储在List集合中的情况。Java提供了多种方式来执行SQL查询,比如使用JDBC、ORM框架等。本文将重点介绍如何使用JDBC来执行SQL查询并将结果存储为List。

JDBC简介

JDBC(Java Database Connectivity)是Java语言操作数据库的标准接口,它提供了一种与不同数据库交互的方式。通过JDBC,我们可以连接数据库、执行SQL语句、处理结果集等操作。

使用JDBC执行SQL查询并将结果存储为List

下面我们将通过一个简单的示例来演示如何使用JDBC执行SQL查询并将结果存储为List。在示例中,我们将连接到一个名为students的数据库,查询学生表中的所有学生信息,并将结果存储到List中。

步骤一:导入JDBC驱动

首先,我们需要导入相应数据库的JDBC驱动。以下是导入MySQL JDBC驱动的Maven依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

步骤二:创建数据库连接

我们需要创建一个数据库连接,以便执行SQL查询。以下是示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/students";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

步骤三:执行SQL查询并将结果存储为List

接下来,我们将编写一个方法来执行SQL查询并将结果存储为List。以下是示例代码:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class StudentDAO {
    private static final String SELECT_ALL_STUDENTS = "SELECT * FROM student";

    public List<Student> getAllStudents() {
        List<Student> students = new ArrayList<>();
        try (Connection connection = DatabaseUtil.getConnection();
             PreparedStatement preparedStatement = connection.prepareStatement(SELECT_ALL_STUDENTS);
             ResultSet resultSet = preparedStatement.executeQuery()) {
            while (resultSet.next()) {
                Student student = new Student(resultSet.getInt("id"),
                        resultSet.getString("name"),
                        resultSet.getInt("age"));
                students.add(student);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return students;
    }
}

步骤四:定义实体类

最后,我们需要定义一个实体类来表示学生信息。以下是示例代码:

public class Student {
    private int id;
    private String name;
    private int age;

    public Student(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getters and setters
}

类图

下面是示例中涉及到的类的类图表示:

classDiagram
    class DatabaseUtil {
        -String URL
        -String USER
        -String PASSWORD
        +Connection getConnection()
    }

    class Student {
        -int id
        -String name
        -int age
        +Student(int id, String name, int age)
        +getId()
        +getName()
        +getAge()
        +setId(int id)
        +setName(String name)
        +setAge(int age)
    }

    class StudentDAO {
        -String SELECT_ALL_STUDENTS
        +List<Student> getAllStudents()
    }

    DatabaseUtil --> StudentDAO
    StudentDAO --> Student

总结

通过本文的示例,我们学习了如何使用JDBC执行SQL查询并将结果存储为List。这种方式适用于简单的数据库操作,但在实际项目中,我们也可以选择使用ORM框架来简化数据库操作。希望本文对你有所帮助!