`

ResultSet结果集

    博客分类:
  • Jdbc
阅读更多
1. ResultSet结果集的引入

当我们查询数据库时,返回的是一个二维的结果集,我们这时候需要使用ResultSet来遍历结果集,获取每一行的数据。


2. 使用ResultSet遍历查询结果

boolean next()将光标从当前位置向前移一行。
String getString(int columnIndex)以Java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。
String getString(String columnLabel)以Java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。


Book.java

package com.andrew.jdbc.model;

public class Book {
    private int id;
    private String bookName;
    private float price;
    private String author;
    private int bookTypeId;
    public Book(String bookName, float price, String author, int bookTypeId) {
        super();
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
    }
    public Book(int id, String bookName, float price, String author, int bookTypeId) {
        super();
        this.id = id;
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getBookName() {
        return bookName;
    }
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public int getBookTypeId() {
        return bookTypeId;
    }
    public void setBookTypeId(int bookTypeId) {
        this.bookTypeId = bookTypeId;
    }
    @Override
    public String toString() {
        return "["+this.id+","+this.bookName+","+this.price+","+this.author+","+this.bookTypeId+"]";
    }
}

ResultSetTest.java

package com.andrew.jdbc.chap05;

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

import com.andrew.jdbc.model.Book;
import com.andrew.jdbc.util.DbUtil;

public class ResultSetTest {
    private static DbUtil dbUtil = new DbUtil();
    private static void listBook() throws Exception {
        Connection connection = dbUtil.getConnection();
        String sql = "select * from t_book";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            int id = resultSet.getInt(1);
            String bookName = resultSet.getString(2);
            float price = resultSet.getFloat(3);
            String author = resultSet.getString(4);
            int bookTypeId = resultSet.getInt(5);
            System.out.println("图书编号:" + id + " 图书名称:" + bookName + " 图书价格:" 
                    + price + " 图书作者:" + author + " 图书类别id:" + bookTypeId);
            System.out.println("=========================================");
        }
    }
    private static void listBook2() throws Exception {
        Connection connection = dbUtil.getConnection(); // 获取连接
        String sql = "select * from t_book";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery(); // 返回结果集ResultSet
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String bookName = resultSet.getString("bookName");
            float price = resultSet.getFloat("price");
            String author = resultSet.getString("author");
            int bookTypeId = resultSet.getInt("bookTypeId"); // 获取第五列的值 图书类别id
            System.out.println("图书编号:" + id + " 图书名称:" + bookName + " 图书价格:" 
                    + price + " 图书作者:" + author + " 图书类别id:" + bookTypeId);
            System.out.println("=========================================");

        }
    }
    private static List<Book> listBook3() throws Exception {
        List<Book> bookList = new ArrayList<Book>();
        Connection connection = dbUtil.getConnection();
        String sql = "select * from t_book";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String bookName = resultSet.getString("bookName");
            float price = resultSet.getFloat("price");
            String author = resultSet.getString("author");
            int bookTypeId = resultSet.getInt("bookTypeId");
            Book book = new Book(id, bookName, price, author, bookTypeId);
            bookList.add(book);
        }
        return bookList;
    }
    public static void main(String[] args) throws Exception {
        System.out.println("-----------------------------------");
        listBook();
        System.out.println("-----------------------------------");
        listBook2();
        System.out.println("-----------------------------------");
        List<Book> bookList = listBook3();
        for (Book book : bookList) {
            System.out.println(book);
        }
    }
}

运行结果:
-----------------------------------
图书编号:1 图书名称:java学习 图书价格:666.0 图书作者:张三 图书类别id:1
=========================================
图书编号:2 图书名称:Java修改 图书价格:666.0 图书作者:修改人2 图书类别id:1
=========================================
-----------------------------------
图书编号:1 图书名称:java学习 图书价格:666.0 图书作者:张三 图书类别id:1
=========================================
图书编号:2 图书名称:Java修改 图书价格:666.0 图书作者:修改人2 图书类别id:1
=========================================
-----------------------------------
[1,java学习,666.0,张三,1]
[2,Java修改,666.0,修改人2,1]
分享到:
评论

相关推荐

    封装ResultSet结果集

    封装ResultSet结果集

    格式化输出ResultSet结果集工具类上

    资源所属:https://blog.csdn.net/qq_16773953/article/details/103461172

    格式化输出ResultSet结果集工具类下

    资源所属:https://blog.csdn.net/qq_16773953/article/details/103461172

    java ResultSet 与 json互转所需要的全部包资源

    在java开发中常需要将ResultSet结果集转化为json格式以实现与客服端实现数据交互,但是这需要几个包,而且版本也要对应,因此我收集了全部的包,并测试可以运行,放在这里供大家下载。包括:commons-beanutils-1.7.0...

    实例讲解JSP获取ResultSet结果集中的数据的方法

    查询执行后,通过“executeQuery()”方法得到ResultSet结果集。 ResultSet是JDBC中用于表示数据库查询结果的一个接口,其中包含了查询返回的行以及列。它类似于一个游标,可以通过它来遍历返回的行数据。示例代码中...

    Java使用PreparedStatement接口及ResultSet结果集的方法示例

    总的来说,`PreparedStatement`接口提供了一种更高效、更安全的方式来执行SQL语句,而`ResultSet`接口则用于存储和处理查询结果。在实际开发中,这两个接口是JDBC编程中不可或缺的部分,它们可以帮助我们更好地与...

    java.sql.SQLException: 结果集已耗尽

    1. **循环遍历结果集时未正确检查结束条件**:最常见的情况是,程序员在for-each或while循环中遍历结果集,但没有在循环条件中检查`ResultSet.next()`的返回值。当`next()`返回false时,表示结果集已空,应停止遍历...

    ResultSet

    2. 结果集的遍历:ResultSet对象是游标型的,这意味着你可以通过调用next()方法向前移动到下一行。一旦next()返回true,表示当前行已被加载,你可以通过调用getXXX()方法(如getInt(), getString()等)来获取列值。 ...

    ResultSet 转为listmap

    在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,我们需要将 ResultSet 转为 List,以便于后续的数据处理和展示。 下面是将 ...

    JDBC工具类(针对mySQL)

    此类是针对执行查询语句返回的ResultSet结果集进行设计的,旨在方便用户将数据库的内容转化为Vector、ArrayList容器的操作过程,此类中提供了多种方法从而简化了对ResultSet结果集的转化成本,结合系统提供的...

    获得结果集的字段名称_ResultSet的属性要调用ResultSetMetaData的方法

    获得结果集的字段名称_ResultSet的属性要调用ResultSetMetaData的方法 在Java中,获取结果集的字段名称可以通过调用ResultSetMetaData的方法来实现。ResultSetMetaData是一个公共接口,提供了关于ResultSet对象中列...

    数据库结果集ResultSet判断为空记录数缺少一行和没有记录但永不为空问题

    最近在做毕业设计,需要用到数据库,在用结果集ResultSet判断的时候遇到一个郁闷的事情。 一开始我的想法是这么一个框架: ResultSet rs = dao.executeQuery(sql); if(rs不为空){ while(rs.next()){ … } }else{ … ...

    只进结果集不支持请求的操作的“解决方法

    在这里,`ResultSet.TYPE_SCROLL_SENSITIVE`表示结果集是可滚动的,并且对外部更改敏感;`ResultSet.CONCUR_READ_ONLY`则表明只能读取数据。 2. **检查结果集特性**:在对结果集进行任何操作之前,最好先检查它...

    Java-JDBC【源码】实现ORM,结果集映射实体类(ResultSet、注解、反射)

    Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射) 1.ORM实现思路 2.@Table、@Column、标识实体类 2.1.创建注解 @Table、@Column 2.2.标识实体类 2.3.数据库表 3.结果集解析,注解加反射填充实体...

    测试JDBC源代码

    这个"测试JDBC源代码"的项目旨在通过实际的代码示例来讲解如何使用JDBC进行数据库操作,包括建立数据库连接、使用Statement接口执行SQL语句以及处理ResultSet结果集。同时,它还涉及到了SQL注入问题,这是数据库安全...

    JDBC访问数据库步骤详解.doc

    #### 四、操作ResultSet结果集 通过`Statement`对象的`executeQuery(String sql)`方法执行SQL查询语句,可以获取到返回的结果集`ResultSet`。`ResultSet`对象封装了查询结果中的所有数据行,并提供了遍历结果集的...

    将ResultSet中得到的一行或多行结果集封装成对象的实例

    将ResultSet中得到的一行或多行结果集封装成对象的实例 将ResultSet中得到的一行或多行结果集封装成对象的实例是指在使用JDBC连接数据库时,将查询结果集转换成对象的实例,以便更方便地访问和操作数据库中的数据。...

    JSP的数据库连接

    7. **处理查询结果**:使用`while (rs.next())`循环遍历ResultSet结果集,并通过`rs.getString(1)`和`rs.getString(2)`获取第一列和第二列的数据。 8. **关闭资源**:最后,通过`rs.close()`、`stmt.close()`和`conn...

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).pdf

    在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。在Oracle数据库中,存储过程可以接收输入参数、输出参数或两者...对于返回结果集的存储过程,可以利用ResultSet遍历每一行数据,获取所需的信息。

    java连接数据库实例

    处理ResultSet结果集 当执行查询语句后,结果会存储在`ResultSet`对象中,可以通过调用`ResultSet`的各种方法(如`next()`、`getInt()`等)来遍历和获取查询结果。在示例中,`while(rs.next())`循环用于遍历每一行...

Global site tag (gtag.js) - Google Analytics