概述:
1.ResultSet:代表查询结果对象
2.类型:
ResultSet.TYPE_FORWARD_ONLY:记录指针只能向前移动
ResultSet.TYPE_SCROLL_INSENSITIVE:记录指针自有移动,数据库数据变动不在ResultSet体现
ResultSet.TYPE_SCROLL_SENSITIVE:记录指针自有移动,数据库数据变动会影响到ResultSet的内容
ResultSet.CONCUR_READ_ONLY:只读的并发模式
ResultSet.CONCUR_UPDATABLE:可更新的并发模式
可更新的结果集需要:结果集数据来自一个表,必须包含主键
3.本文介绍的方法:
first、last、next、absolute、previous、beforeFirst、afterLast
isFirst、isLast、isClosed、isBeforeFirst、isAfterLast、updateRow
deleteRow、insertRow、updateRow、moveToInsertRow、moveToCurrentRow
package com.cxy.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.UUID; /** * @author cxy */ public class ResultSetTest { public static void main(String[] args) { try( Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root"); PreparedStatement pstmt=con.prepareStatement("select * from t_student", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs=pstmt.executeQuery(); ) { rs.first(); //将指针移动到第一行 System.out.println("当前记录指针指向行数:"+rs.getRow()); rs.next(); //指针移动到下一行 System.out.println("当前记录指针指向行数:"+rs.getRow()); rs.last(); //将指针移动到最后行 int rowNum=rs.getRow(); //指针在最后可以通过这个方法获取所有记录数 System.out.println("查询结果记录数:"+rowNum); System.out.println("======================================="); //利用absolute遍历 移动光标到指定行 绝对定位 for(int i=1;i<=rowNum;i++) { rs.absolute(i); System.out.println(i+":"+rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)); } System.out.println("======================================="); //relative 相对移动 相对当前指针位置移动,括号内的参数可正可负 //rs.relative(1); 相当于 next(); //re.relative(-1); 相当于 previous(); System.out.println("当前行:"+rs.getRow()); rs.relative(-1); System.out.println("移动后的当前行:"+rs.getRow()); System.out.println("======================================="); //previous:移动光标到当前指针的前一个 rs.previous(); System.out.println(rs.getRow()+":"+rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)); System.out.println("======================================="); //插入数据 System.out.println("插入数据:"); rs.moveToInsertRow(); //将指针移动到插入行,当前的位置将会被记住 rs.updateString(1, UUID.randomUUID().toString().replace("-", "")); rs.updateString(2, "克隆人"+System.currentTimeMillis()); rs.updateString(3, "男"); rs.insertRow(); //必须和moveToInsertRow联合使用 rs.moveToCurrentRow(); //做完插入操作后,将指针指回到插入状态前的行 System.out.println("======================================="); //修改数据表 System.out.println("修改数据:"); rs.updateString(2, "小红-改"); rs.updateRow(); System.out.println(rs.getRow()+":"+rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)); System.out.println("======================================="); //删除某行 System.out.println("删除数据:"); rs.deleteRow(); System.out.println(rs.getRow()+":"+rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)); System.out.println("======================================="); //几个判断 System.out.println("当前指针是否指向第一行?"+rs.isFirst()); System.out.println("当前指针是否指向最后一行?"+rs.isLast()); System.out.println("结果集是否已经关闭?"+rs.isClosed()); rs.beforeFirst(); System.out.println("当前指针是否在第一行的前面?"+rs.isBeforeFirst()); rs.afterLast(); System.out.println("当前指针是否在最后一行的后面?"+rs.isAfterLast()); }catch(Exception e) {e.printStackTrace(); System.out.println("数据库操作出现异常"); } } /** * 打印ResultSet */ public static void printResultSet(ResultSet rs2) { try { while(rs2.next()) { System.out.println(rs2.getString(1)+"\t"+rs2.getString(2)+"\t"+rs2.getString(3)); } } catch (SQLException e) { e.printStackTrace(); } } }
相关文章连接:
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
相关推荐
### JDBC基础教程之ResultSet对象详解 #### 一、ResultSet对象概览 `ResultSet`对象是Java Database Connectivity (JDBC) API中的一个核心组件,用于处理SQL查询结果。它充当了一个临时的数据存储,其中包含了所有...
- Java基础语法和面向对象编程 - JDBC API,用于与数据库建立连接、执行SQL语句并获取ResultSet - Apache POI库的使用,包括HSSF(处理.xls文件)和XSSF(处理.xlsx文件)API - ResultSet的遍历,如next()方法和各...
### Java基础(韩顺平版)笔记详 #### 一、Java语言概述与环境搭建 - **Java的历史与发展** - Java由Sun Microsystems公司在1995年发布,由James Gosling领导开发。 - 2009年,Oracle公司收购了Sun Microsystems...
本教程"最经典的Java基础实验与案例开发指导教程精选"旨在提供一个全面的学习平台,帮助新手快速掌握Java编程的核心概念。以下是对该教程内容的详细解读: 1. **Java基础概念**:Java的基础包括变量、数据类型、...
Java基础类是学习Java编程语言的关键部分,涵盖了各种核心概念和技术。这些概念和技术构成了Java程序设计的基础,并在实际开发中广泛应用。以下是对标题和描述中提及的Java基础类知识点的详细解释: 1. **字符串...
这份"Java基础资料"涵盖了从Java基础知识到高级特性的全面学习路径,旨在帮助初学者快速掌握Java编程。 第一章:JAVA基础 这部分内容将引导你了解Java的基础概念,包括安装JDK(Java Development Kit),设置环境...
Java基础之JDBC相关代码是Java编程中一个重要的部分,主要涉及如何与关系型数据库进行交互。在Java中,JDBC(Java Database Connectivity)是一套规范,它为开发者提供了标准的API,使得Java应用程序能够连接到各种...
14. **JDBC(Java Database Connectivity)**:学习如何连接数据库,执行SQL查询,以及使用PreparedStatement和ResultSet对象。 15. **Java注解**:理解注解的用途,包括元注解和自定义注解,以及它们在编译时和...
一、Java 流和文件操作 Java 中的流主要分为两类:字节流和字符流,它们分别继承自 ...这些知识点涵盖了 Java 的基础知识,包括文件操作、数据库交互、网络编程以及 GUI 开发,对于理解和掌握 Java 编程至关重要。
本Java基础课件将带你深入理解和掌握这门强大的语言。 一、Java语言基础 Java的基础包括语法、数据类型、变量、运算符、流程控制语句等。数据类型分为基本类型(如int、float、char)和引用类型(如类、接口、数组...
### JAVA基础知识点详解 #### 第一章:开发简单JAVA应用程序 **1.1 简介** 本章节主要介绍如何开发简单的Java应用程序,包括Java语言的基础概念、发展历程以及开发环境的搭建。 **1.2 JAVA简介** Java是一种...
这个"java基础视频-试看.rar"似乎是一份专为初学者设计的教程资源,帮助学习者掌握Java编程的基本概念和语法。让我们深入探讨一下Java的基础知识。 1. **Java简介**:Java是由Sun Microsystems(后被Oracle收购)...
1. 平台无关性是Java的核心特性之一,这意味着Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,无需针对特定操作系统进行修改。源代码级的平台无关性意味着用Java编写的程序在不同系统中只需重新编译即可,而...
Java是一种广泛使用的...Java基础教程通常会涵盖以上这些内容,学习者可以通过阅读`Java基础教程.pdf`进一步深入理解和掌握Java编程的基础概念和技能。这个PDF文档将是一个全面的指南,帮助初学者逐步进入Java的世界。
本课程"【IT十八掌徐培成】Java基础第22天-04.JDBC基础"可能是由知名IT教育专家徐培成教授的,主要讲解了Java基础的第22天课程,专注于JDBC的基础知识。课程内容可能涵盖了以下几个核心知识点: 1. **JDBC API概述*...
在IT行业中,数据库查询结果通常以ResultSet对象的形式返回,它是一种存储查询结果的接口,源自Java的JDBC(Java Database Connectivity)API。当需要将这些数据转换为XML格式时,以便于数据交换、存储或进一步处理...
Java Database Connectivity (JDBC) API是Java连接数据库的标准接口,通过DriverManager、Connection、Statement和ResultSet等类实现数据库的连接、查询、增删改操作。 这套【JAVA 基础教学课件】将详细讲解以上...
【基于Java基础和JDBC的小型员工管理系统】是一个适合初学者进行实践的项目,它涵盖了Java编程语言的基础知识以及数据库连接技术JDBC。这个系统能够完成对员工信息的基本操作,包括增加新员工、删除现有员工、修改...
Java基础数据库编程主要涉及到JDBC(Java Database Connectivity),这是一个用于连接Java应用程序与SQL数据库的API。JDBC提供了一种标准的、独立于特定数据库的接口,使得开发人员能够使用Java编写程序来存取不同...
这个名为"Java基础.zip"的压缩包包含了一系列关于Java基础知识的教程,旨在帮助初学者快速入门。下面将对这些文件中可能涵盖的重要知识点进行详细解释。 1. **JAVA概述**:这部分通常会介绍Java的历史、应用领域、...