ResultSet
简介:通过代码理解ResultSet,从这个单词的翻译就知道,他是存放查询结果的集合的,用于select语句。
推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Driud数据库连接池的使用->ResultSet->通过PreparedStatement预防SQL注入->JDBC增删改查案例讲解 大家跟着敲完基本就可以JDBC基础毕业了。
演示代码
package com.study.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* JDBC快速入门
*/
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//1. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获取连接
// String url = "jdbc:mysql://127.0.0.1:3306/books"; // 如果是mysql5这样写
String url = "jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true"; // 如果是mysql8这样写
String username = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url, username, password);
//3. 定义sql
String sql = "select * from book";
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
ResultSet rs = stmt.executeQuery(sql);
// //6. 处理结果
while(rs.next()){
// 获取数据
String recId = rs.getString(1);
String title = rs.getString(2);
String type = rs.getString(3);
double price = rs.getDouble(4);
System.out.print(recId + " ");
System.out.print(title + " ");
System.out.print(type + " ");
System.out.println(price);
System.out.println();
System.out.println("--------------");
}
//7. 释放资源
stmt.close();
conn.close();
}
}
运行结果:
代码讲解
从上面的演示代码,我们发现,在ResultSet接收到,Statement运行的select的sql语句,获取到了查询的数据集之后,采取循环的方式获取数据集合中的数据。
next()
:返回值为boolean类型,判断是否还存在下一个结果,类似于迭代器的访问方式。
getXxx()
:返回值类型为Xxx类型,比如String,Double,Integer,等等类型,里面的参数为,数据库中总的每一列的列名,根据数据库中的具体的数据类型,来确定是Xxx是什么类型。