
之前的dml语句都返回值都是int表示有改动的行数
 那么Select可是要展示数据的
SELECT查询的结果
 通过这个ResultSet遍历
 然后通过next方法来一行行读取数据
 类似于迭代器(肯定不是迭代器)
 里面还包含获得的数据元素
 相当于这个既包含元素,还能迭代自己的元素
 具体你看底层
不过不能直接输出,我们需要一列一列数据获取(Get数据类型(第几列))
 案列
  
package yuan.hsp.JDBC;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Driver;
@SuppressWarnings("all")
public class 结果集 {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
	Class.forName("com.mysql.jdbc.Driver");
	
	Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db02", "root", "123456");
	
	Statement createStatement = connection.createStatement();
	
	String sql="select id,name,sex,borndate from actor";
	ResultSet executeQuery = createStatement.executeQuery(sql);//和之前的execute不同,executeQuery返回一个ResultSet
	//用while取出数据
	while (executeQuery.next()) {//没有数据返回false
		int id=executeQuery.getInt(1);//获取该行第一列数据
		String name=executeQuery.getString(2);//第二列
		String sex=executeQuery.getString(3);//第三列
		Date date = executeQuery.getDate(4);//第四列
		System.out.println(id+name+sex+date);
	}
	//关闭
	createStatement.close();
	connection.close();
	
}
}
底层
ResultSet实际上是一个接口
 真正的类型

 是这个黄线表的
 是由我们的数据厂商实现
 ResultSet里面有
 一个rowData的数据结构

这里面还有一个elementData数据类型
 数据其实就放在这个elementData数组里面
 当然存储的都是ASCLL码
 当然存储的都是ASCLL码

 jack对应的ASCLL码-106 97 99 107
 用字节数组存储每一个对应的字符呗



![指针与数组--动态数组(1)[1、C程序的内存映像 2、动态内存分配]](https://img-blog.csdnimg.cn/0e05dc4cbed148c5a318a531dac42db7.png)















