JDBC------之执行查询操作和使用结果集获取数据的简单方式

使用数据库操作对象对数据库的操作分为两类,一类是对数据库内容的增删改,另一类是对数据库内容的查询,因为查询数据库会从数据库服务器返回查询的结果,这个结果被封装到一个结果集之中,我们需要对这个结果集进行相应的操作来获取我们查询的数据。

代码演示:

package com.itheima.hui;

import com.itheima.hui.utils.JDBCUtils;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCSelect {
    public static void main(String[] args) {
        //使用JDBC的查询操作
        Connection connect = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            //1.使用工具类过得连接对象
            connect = JDBCUtils.getConnect();
            String sql = "select * from student";
            preparedStatement = connect.prepareStatement(sql);

            //执行查询操作返回值是一个结果集对象
            resultSet = preparedStatement.executeQuery();

            //遍历结果集
            while (resultSet.next()) {//判断结果集中的下一行还有没有数据,有数据返回true并且指针下移,没有数据返回false,指针不再下移
               /* String id = resultSet.getString(1);//索引的值是从1开始的,值得注意的是只要是和数据库交互的大部分的索引值都是从1开始的
                String name = resultSet.getString(2);
                String age = resultSet.getString(3);*/
                //当然我们也可以通过结果集的获取数据的重载方法获得数据
                String id = resultSet.getString("id");
                String name = resultSet.getString("name");
                String age = resultSet.getString("age");
                System.out.println(id + "   " + "  " + name + "    " + age);
            }


        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //使用自定义工具类关闭资源
            JDBCUtils.close(connect, preparedStatement, resultSet);


        }


    }


}

 

对于结果集Resultset的解析:

当我们通过数据库查询数据的时候会返回相应的查询结果:

JDBC------之执行查询操作和使用结果集获取数据的简单方式

 

 

 

这个结果就被封装在Resultset结果集当中,在初始的时候,next();指针指向第一行真实数据的上面,如下图所示:

JDBC------之执行查询操作和使用结果集获取数据的简单方式

 

 

 当我们在对结果集进行操作的时候使用resultSet.next(),会判断当前指针的下一行还有没有数据:

  • 如果有:
    • 返回值为true
    • 并且next();指针向下移动一行
  • 如果没有
    • 返回值为false,指针不再向下移动

 

当我们经过判断获得true的时候,我们就需要对数据进行获取的操作,在上面的代码中有详细的操作和解释。

 

JDBC------之执行查询操作和使用结果集获取数据的简单方式

上一篇:MySQL主从配置和读写分离


下一篇:mysql 数据操作