zoukankan      html  css  js  c++  java
  • 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的解析:

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

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

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

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

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

    迎风少年
  • 相关阅读:
    增强for循环赋值并且向list集合里添加元素,每个元素都一样
    《《《Spring 视频学习笔记
    xml中的<where><if>模糊查询
    《《《layui入门笔记
    《《《Vue element学习笔记
    《《《Spring Boot视频学习笔记
    intellij idea设置打开多个文件显示在多行tab上
    postMan安装完成,打开提示找不到,或者报错 可能原因
    Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录
    idea代码注释
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13840000.html
Copyright © 2011-2022 走看看