项目方案:Java SQL Server 查询后返回 List 结果的封装方案

1. 项目概述

本项目旨在实现一个 Java SQL Server 查询后返回 List 结果的封装方案,以便在 Java 开发中更方便地处理 SQL 查询结果,并将其封装为列表形式进行后续操作。

2. 项目背景

在 Java 开发中,经常需要与数据库进行交互,并执行各种 SQL 查询操作。SQL Server 是一种常用的关系型数据库,因此在 Java 开发中需要对 SQL Server 查询结果进行封装,以便更方便地进行后续处理。

3. 方案设计

3.1 技术选型

  • Java:作为项目的开发语言。
  • SQL Server:作为项目的数据库。
  • JDBC:用于连接数据库和执行 SQL 查询操作。
  • List:用于封装 SQL 查询结果。

3.2 方案流程

下面是整个方案的流程图:

erDiagram
    Database --> Java Application : 数据库连接
    Java Application --> Database : SQL 查询操作
    Java Application --> List : 结果封装

3.3 类图设计

下面是本方案的类图设计:

classDiagram
    class Database {
        +getConnection() : Connection
        +executeQuery(sql: String) : ResultSet
    }

    class JavaApplication {
        +main(args: String[]) : void
        +getResults(sql: String) : List<Result>
    }

    class Result {
        -id : int
        -name : String
        +getId() : int
        +getName() : String
    }
  • Database 类负责数据库的连接和执行 SQL 查询操作。
  • JavaApplication 类是项目的入口类,负责调用 Database 类进行查询操作,并将结果封装为 List
  • Result 类是封装查询结果的实体类,包含了查询结果的字段。

3.4 代码实现

3.4.1 数据库连接和查询操作

首先,我们需要创建一个 Database 类,用于连接数据库和执行 SQL 查询操作。代码如下:

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

public class Database {
    private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=mydb";
    private static final String USERNAME = "username";
    private static final String PASSWORD = "password";

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

    public ResultSet executeQuery(String sql) throws SQLException {
        Connection connection = null;
        ResultSet resultSet = null;

        try {
            connection = getConnection();
            resultSet = connection.createStatement().executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (resultSet != null) {
                resultSet.close();
            }
            if (connection != null) {
                connection.close();
            }
        }

        return resultSet;
    }
}

在上面的代码中,我们使用 JDBC 连接数据库,并提供了 getConnection 方法用于获取数据库连接,executeQuery 方法用于执行 SQL 查询操作,并返回查询结果。

3.4.2 结果封装

接下来,我们需要创建一个 Result 类,用于封装查询结果的实体类。代码如下:

public class Result {
    private int id;
    private String name;

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

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

在上面的代码中,我们定义了一个 Result 类,包含了查询结果的字段,并提供了相应的 getter 方法。

3.4.3 查询结果封装为 List

最后,我们需要创建一个 JavaApplication 类,用于调用 Database 类进行查询操作,并将结果封装为 List。代码如下:

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

public class JavaApplication {
    public static void main(String[] args) {
        String sql = "SELECT * FROM my_table";
        List<Result> results = getResults(sql);

        for (Result result : results) {
            System.out.println(result.getId() + ": " + result.getName());
        }
    }

    public static List<Result> getResults(String sql) {
        List<Result> results = new ArrayList<>();

        try {
            Database database = new Database();
            ResultSet resultSet = database.executeQuery(sql);

            while (resultSet.next()) {
                int