使用JDBC执行查询并获取返回list结果集

AI智能回答:

在Java中,使用JDBC执行查询并获取返回的结果集通常涉及以下步骤:

  1. 加载数据库驱动。

  2. 创建数据库连接。

  3. 准备SQL查询并创建PreparedStatement

  4. 执行查询并处理返回的结果集。

以下是一个简单的例子,演示如何执行查询并将结果存储在List<Map<String, Object>>中:

import java.sql.*;
import java.util.*;
 
public class JdbcExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/your_database";
        String username = "your_username";
        String password = "your_password";
        String query = "SELECT * FROM your_table";
 
        List<Map<String, Object>> list = executeQuery(url, username, password, query);
        // 处理list中的数据
    }
 
    public static List<Map<String, Object>> executeQuery(String url, String username, String password, String query) {
        List<Map<String, Object>> resultList = new ArrayList<>();
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
 
        try {
            // 加载数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 建立连接
            conn = DriverManager.getConnection(url, username, password);
            // 创建PreparedStatement
            pstmt = conn.prepareStatement(query);
            // 执行查询
            rs = pstmt.executeQuery();
 
            ResultSetMetaData rsmd = rs.getMetaData();
            int columnCount = rsmd.getColumnCount();
 
            while (rs.next()) {
                Map<String, Object> row = new HashMap<>();
                for (int i = 1; i <= columnCount; i++) {
                    row.put(rsmd.getColumnName(i), rs.getObject(i));
                }
                resultList.add(row);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
 
        return resultList;
    }
}

在这个例子中,executeQuery方法执行了给定的SQL查询,并将结果存储在一个由Map组成的List中。每个Map对应结果集的一行,其中键是列名,值是对应的值。这样可以方便地处理和操作这些数据。记得处理异常和资源关闭,避免资源泄露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值