使用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框架来简化数据库操作。希望本文对你有所帮助!