JDBC那些事(二)——查询结果集_ResultSet

2023-11-15

接上一篇,JDBC的查询返回值相对复杂一点,所以单独写。上一篇写到stmt.excuteUpdate(sql);执行结果返回的是int类型的值。此处的sql语句为非查询语句。而如果要执行查询语句则需要使用Statement对象的excuteQuery(sql);我们都知道在cmd或者图形化界面下执行查询语句返回的是一个二维的数据表格。那么如果JDBC需要拿到查询结果数据,就必须遍历表格。

JDBC给执行查询结果定一个了一个返回结果集的类型ResultSet ,在ResultSet中有一个指向行的光标。

查询结果集和行标起始位置

ResultSet rs = stmt.executeQuery(sql); rs为结果对象集。通过rs.next();进行行(hang)遍历,rs提供了getString(i),getString("a"),(i为第几列,a为对应的列明)两种方式进行列表遍历;所以只要能够获得查询结果集的总列数。通过行列遍历就可以遍历整个查询的结果集。我们可以通过rs.getMetaData().getColumnCount();的方式获取到插叙结果集。这样便可以进行结果集的遍历。遍历核心代码如下:

int count = rs.getMetaData().getColumnCount();
			while(rs.next()) {//遍历行,next()方法返回值为Boolean,当存在数据行返回true,反之false
				for(int i = 1; i <= count; i++) {//遍历列
					System.out.print(rs.getString(i));
					if(i < count) {
						System.out.print("---");//为数据隔开美观,没实际意义
					}
				}
				System.out.println();
			}
这样数据结果集就遍历了。

顺便说一下,完整的JDBC代码连接过程代码有三个对象是需要关闭的,不然后容易引发不可预测的错误。关闭的时候注意下关闭顺序,先定义的后关闭。即:

	if(rs != null) rs.close();
	f(stmt != null) stmt.close();
	if(con != null) con.close();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC那些事(二)——查询结果集_ResultSet 的相关文章

  • 全面理解java中的构造方法以及this关键字的用法(超详细)

    Hello 各位铁汁们 我是小 儿哈 今天我又来更新我的Java基础学习博客了 本篇主要内容概述 1 如何用构造方法初始化对象 2 为啥要有this这个关键字 3 this 属性名访问成员变量 成员方法 4 this 方法名 this 的用
  • java热部署

    Class forName和ClassLoader loadClass 简书 Eclipse安装热部署热加载插件JRebel 免费版 idea也可用 that summer CSDN博客 Eclipse中使用JRebel实现项目热部署 Ma
  • Java常用类:System类

    文章目录 System类概述 1 arraycopy 方法 概述 语法 举例 2 currentTimeMillis 方法 概述 语法 举例 3 gc 方法 概述 语法 举例 4 exit int status 方法 概述 语法 举例 Sy
  • static静态代码块

    static静态代码块 public class Person 静态代码块 在类加载时候执行静态代码块 只会执行一次 static System out println Person static initializer 实例初始化块 每次
  • 关于Java集合的一些技巧

    需要唯一吗 需要 Set 需要指定顺序吗 需要 TreeSet 不需要 HashSet 但是想要一个和存储一致的顺序 有序 LinkedHashSet 不需要 List 需要频繁增删吗 需要 LinkedList 不需要 ArrayList
  • jquery循环语句if-else if-else

    jquery循环语句if else if else callbackFun 函数 开始是写的if if else 结果是不管第一个if有没有匹配到 会再次判断 如果匹配到第二个if 则第二个if中的语句执行 没有匹配到第二个if 则else
  • 判断考生成绩等级(switch case语句练习)

    判断考生成绩等级 1 考生成绩控制在 0 100 2 成绩 90 100 优 成绩 80 90 良 成绩 70 80 可 成绩 60 70 一般 成绩 0 60 不及格 要求使用switch语句 不能使用if语句 class SwitchT
  • JAVA接收JSON中的数组

    入参数据示例 respCode 0000 respMsg 请求成功 bizSeqNo 22022120001184432418054888526616 transTime 20220221180548 success true tokenA
  • Java文件的读写

    文件与流 在实际生活中 我们总要对文件进行操作 Java提供了流可以帮助我们读写文件 下面是常用的流类型结构图 在对文件的读写操作中 字节流可用于读写二进制文件 字符流用于读写文本文件 所谓二进制文件 指文件无字符编码格式 均由字节 Byt
  • Java 解析http返回的xml数据

    Java 解析http返回的xml数据 写成txt文件 需求 每小时抓取给定api接口返回的xml数据 把xml数据保存为XML文件 把xml数据转换txt文件格式数据 保存txt文件 文件名以yyyyMMddHH0000 txt和yyyy
  • 【Java编程】图书管理系统

    图书管理系统 我们用一个列表存放书籍信息 private static List
  • Scanner中nextInt()和nextLine()详解(秒懂)

    直接上代码 输出结果 结果分析 nextInt 和nextLine 顺序互换代码如下 输出结果 结果分析 解决方法 可以将nextLine 用next 替换 两者nextLine 执行之前再加一个空nextLine 让这个空的清楚掉回车符再
  • JDBC那些事(二)——查询结果集_ResultSet

    接上一篇 JDBC的查询返回值相对复杂一点 所以单独写 上一篇写到stmt excuteUpdate sql 执行结果返回的是int类型的值 此处的sql语句为非查询语句 而如果要执行查询语句则需要使用Statement对象的excuteQ
  • Java概述

    Java 简介 一个苦逼的建筑专业的Java小白 什么是 Java Java 是一门面向对象编程语言 不仅吸收了 C 语言的各种优点 还摒弃了 C 里难以理解的多继承 指针等概念 因此 Java 语言具有功能强大和简单易用两个特征 Java
  • Java面向对象——图书管理系统(小白也能看的懂!)

    文章目录 一 功能介绍 二 JAVA面向对象思想 包的分装 1 book包 2 user包 较复杂 3 operation包 接口包 三 代码框架的搭建 1 book包 Book类 2 book包 BookList类 3 operation
  • 包装类自动装箱和拆箱原理

    包装类的自动装箱和自动拆箱 包装类的自动装箱和拆箱是JDK1 5的新特性 一 首先 了解自动装箱的过程 有两种自动装箱过程 第一种 128 127 之内 调用相应包装类的valueOf 例如 Integer i 12 Integer a 2
  • JAVA(Object和String)一 Object类和String字符串的理解和使用

    JAVA Object和String 一 Object类和String字符串的理解和使用 Object类 String类 Object类 理解 在JAVA中有一个非常特殊的类叫做Object类 JAVA里面所有的类都继承自Object类 我
  • private static final Long serialVersionUID= 1L详解

    我们知道在对数据进行传输时 需要将其进行序列化 在Java中实现序列化的方式也很简单 可以直接通过实现Serializable接口 但是我们经常也会看到下面接这一行代码 private static final Long serialVer
  • Day8_8 Java学习之List集合类

    目录 一 List集合的概述 ArrayList集合类的概述 ArrayList集合的语法定义 ArrayList集合的常用方法 LinkedList集合概述 LinkedList集合的语法定义 LinkedList集合类常用方法 二 Se
  • java实现简单的生成52张牌、三个人洗牌、码牌算法

    定义一个Pocker类 用于定义牌类 package demo public class Poker private String suit 花色 private int rank 数字 构造函数 public Poker String s

随机推荐

  • Mac M1下安装、升级npm(国内源)

    我们介绍使用Homebrew安装node npm等环境 brew的安装见如下文章 Mac M1芯片电脑Java开发环境准备 重要的事情说三遍 国内源 国内源 国内源 要不然慢的要死 要卡死 npm我们也要使用国内源 安装很简单还是之前的套路
  • Asp.net 之Cookie简单介绍与使用

    什么是Cookie Cookie 有时也用其复数形式Cookies 指某些网站为了辨别用户身份 进行session跟踪而储存在用户本地终端上的数据 通常经过加密 所以查看浏览器保存到本地的Cookie时 一般都是一个文本文件这些文件通常是以
  • 为什么InnoDB使用B+树而不是B树

    出于对IO性能的考虑 B树每个节点都存储数据 而B 树只有叶子节点才存储数据 所以在查询相同数据量的情况下 B树的IO会更频繁 因为索引本身存储在磁盘上 当数据量大时 就不能把整个索引全部加载到内存 只能逐一加载每一个磁盘页 更何况B树的索
  • 【性能测试】第四篇

    主流性能测试工具 1 Loadrunner HP Loadrunner 是一种工业级标准性能测试负载工具 可以模拟上万用户实施测试 并在测试时可实时检测应用服务器及服务器硬件各种数据 来确认和查找存在的瓶颈 支持多协议 WEB HTTP H
  • Python+Selenium实现短视频自动上传与发布

    前言 最近有人对自动上传与发布很感兴趣 都私下找我说了好几次了 今天 必须把他安排 必须实力宠粉 本篇依次介绍目前主流的短视频平台 抖音 快手 B站 小红书 微视 百度好看视频 西瓜视频 微信视频号 搜狐视 频 一点号 大风号 趣头条等 的
  • # 若依-点击重置清空table列表,不刷新数据

    若依点击清空按钮 清空table数据 思路 点击清空按钮 触发输入框清空 并且移除列表中所有数据 实战 找到ry ui js新增restNoRefresh函数 ry ui js路径 src main resources static ruo
  • FPGA 频率计实验

    参考 正点原子开拓者 FPGA 开发指南 数字频率计是一种基本的测量仪器 被广泛应用于航天 电子 测控等领域 基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低 在使用中有较大的局限性 而等精度频率计不但具有较高的测量精度 而且
  • Jfinal报错Can not create instance of class: demo.DemoConfig

    根据文档demo 启动项目时报错 WARN oejuc AbstractLifeCycle FAILED jfinal java lang RuntimeException Can not create instance of class
  • vector对象的定义和初始化以及vector迭代器iterator

    vector对象的定义和初始化 vector类定义了好几种构造函数 用来定义和初始化vector对象 vector
  • JVM调优

    1 JVM参数分类 共分为三种 标准参数 开头 所有的Hotspot都支持 分标准参数 X开头 特定版本Hotspot支持特定命令 不稳定 XX开头 下个版本可能会取消 XX PrintCommandLineFlags 打印虚拟机启动时带的
  • 【计算机网络 (谢希仁) 习题题解】第5章 运输层 (4)——TCP的拥塞控制

    拥塞控制的一般原理 在计算机网络中的链路容量 即带宽 交换结点中的缓存和处理机等 都是网络的资源 在某段时间 若对网络中某一资源的需求超过了该资源所能提供的可用部分 网络的性能就要变坏 这种情况就叫做拥塞 congestion 可以把出现网
  • Celery raises ValueError: not enough values to unpack

    翻译Stack Overflow的 Celery raises ValueError not enough values to unpack 尝试使用 Celery 运行简单示例并收到异常 RabbitMQ 是在 Docker 中启动的 也
  • no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1

    问题 no matching key exchange method found Their offer diffie hellman group exchange sha1 diffie hellman group14 sha1 diff
  • C语言牛顿法解非线性方程组,牛顿法解非线性方程组

    Newton cpp Defines the entry point for the console application include stdafx h include include define N 3 void get Chuz
  • python 安装包时添加国内源

    python 安装包时添加国内源 清华源 i https pypi tuna tsinghua edu cn simple
  • 苹果mac电脑如何安装虚拟机?CrossOver Mac2023

    Mac虚拟机怎么安装系统 macOS系统无法正常安装Windows应用 无法正常使用Windows系统中的文件 在macOS系统中安装虚拟机是一种比较恰当的解决方案 mac电脑怎么安装虚拟机 mac电脑安装虚拟机需要根据个人需求 有选择性地
  • 如何保证APP兼容性覆盖测试和手机APP测试如何进行兼容性测试?(学习笔记)

    1 背景 众所周知 APP兼容性覆盖测试一直以来被认为是一个高成本 耗时低效 耗人力的测试工作 且兼容性测试是一项必须要进行的测试项目 因为有不同的机型 系统平台 分辨率 网络 厂商 数据兼容以及不同兼容问题场景需要进行覆盖 本文章将通过本
  • G - 和为给定数

    蒜头君给出若干个整数 询问其中是否有一对数的和等于给定的数 输入格式 共三行 第一行是整数 n 0 lt n le 100 000 n 0
  • Arduino IDE将FreeRTOS用于STM32

    介绍 适用于STM32F103C8的FreeRTOS STM32F103C是一种能够使用FreeRTOS的ARM Cortex M3处理器 我们直接在Arduino IDE中开始使用STM32F103C8的FreeRTOS 我们也可以使用K
  • JDBC那些事(二)——查询结果集_ResultSet

    接上一篇 JDBC的查询返回值相对复杂一点 所以单独写 上一篇写到stmt excuteUpdate sql 执行结果返回的是int类型的值 此处的sql语句为非查询语句 而如果要执行查询语句则需要使用Statement对象的excuteQ