ResultSet

1.定义:

查询数据库时,返回的是一个二维的结果集,我们需要用到ResultSet来遍历结果集,获取每一行的数据。
boolean next() 将光标从当前位置向前移一行。

2.解释:

ResultSet类是一种数据库查询结果存储类,就是当查询数据库的时候,可以将查询的结果放在具体的ResultSet对象中,其实我们把这种存储查询结果的ResultSet对象叫做ResultSet结果集。比如我们用aaa表示一个ResultSet对象。

那么查询的结果无非就是一些符合查询条件的记录集,ResultSet结果集有一个索引指针,最初这个指针是指向第一条记录的前一个位置,也就是没有指向任何内容,使用aaa.next()方法就会使指针往后移动指向下一个记录,所以一定要先执行一次next()函数才会让指针指向第一条记录。

一条记录可能会有好几个属性的内容,那么我们可以使用getXXX(int index)方法类获得具体属性的值,XXX代表以什么样的数据类型方式来读取内容,当指针指向一条记录的时候,比如这条记录的内容就是:0001 张三 3岁。而且这三个属性的值的类型全是String类型,那么我们可以使用aaa.getString(1)来获得内容0001,使用getString(2)来获得内容张三,值得注意:ResultSet的一条记录的索引位置是从1开始的,而不是从0开始。

package com.hy.jdbc;

import java.sql.*;

public class resultSet {
    public static void main(String[] args) {
        Connection con = null;
        try {
            //注册JDBC驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/students","root","root");
            String sql="select * from user where id>?";
            PreparedStatement ps=con.prepareStatement(sql);
            ps.setObject(1,2);
            ResultSet rs=ps.executeQuery();
            while(rs.next()){
                System.out.println(rs.getInt(1)+"-"+rs.getString(2)+"-"+rs.getInt(3)+"-"+rs.getString(4));
            }
        }
        catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        finally {
            try {
                if(con!=null) con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

你可能感兴趣的:(ResultSet)