【MySql】ResultSet结果集详解
ResultSet接口规范其他数据库实现 返回的resultset就是结果集对象(存储从数据库中查询出的数据的容器)
遍历结果集–next()方法
一行一行的读取,如果next()方法返回true表示当前行还有数据,如果返回的false,则表示后面没有数据
while(resQuery.next()) { // 每读取一行就去获取每一行的每一列数据 int s_id = resQuery.getInt("s_id"); // 获得id列 String s_name = resQuery.getString("s_name"); // 获得name列 String s_gender = resQuery.getString("s_gender"); // 获得gender列 }
获取数据方法
获取数据的方法有俩种,可以根据数据索引,也可以根据字段名
- 注意:通过字段名获取数据,get后面的类型就是数据库中的字段类型,需要一一对应类型
while(resQuery.next()) { // 每读取一行就去获取每一行的每一列数据 int s_id01 = resQuery.getInt(1); // 获取索引为1的数据 int s_id = resQuery.getInt("s_id"); // 获得id列 String s_name = resQuery.getString("s_name"); // 获得name列 String s_gender = resQuery.getString("s_gender"); // 获得gender列 }
如果想要一行数据,可以通过pojo对象存储,每一行数据也就是一个对象,下面案例为获取学生对象集合
pojo对象
package com.moon.pojo; public class Student { private Integer s_id; private String s_name; private String s_gender; private String s_phone; private Integer s_class_id; private String s_teacher; // java bean public Student() {} public Student(Integer s_id, String s_name, String s_gender, String s_phone, Integer s_class_id, String s_teacher) { super(); this.s_id = s_id; this.s_name = s_name; this.s_gender = s_gender; this.s_phone = s_phone; this.s_class_id = s_class_id; this.s_teacher = s_teacher; } public Integer getS_id() { return s_id; } public void setS_id(Integer s_id) { this.s_id = s_id; } public String getS_name() { return s_name; } public void setS_name(String s_name) { this.s_name = s_name; } public String getS_gender() { return s_gender; } public void setS_gender(String s_gender) { this.s_gender = s_gender; } public String getS_phone() { return s_phone; } public void setS_phone(String s_phone) { this.s_phone = s_phone; } public Integer getS_class_id() { return s_class_id; } public void setS_class_id(Integer s_class_id) { this.s_class_id = s_class_id; } public String getS_teacher() { return s_teacher; } public void setS_teacher(String s_teacher) { this.s_teacher = s_teacher; } }
获取数据库对象数据
// 学生的对象可以通过list集合存储 List<Student> list = new ArrayList(); // sql语句查询所有的学生 String sqlQuery = "select * from student"; // 提交查询,获取结果集合 ResultSet resQuery = statement.executeQuery(sqlQuery); // 遍历结果集合 while(resQuery.next()) { // 每读取一行就去获取每一行的每一列数据 int s_id = resQuery.getInt("s_id"); String s_name = resQuery.getString("s_name"); String s_gender = resQuery.getString("s_gender"); String s_phone = resQuery.getString("s_phone"); int s_class_id = resQuery.getInt("s_class_id"); String s_teacher = resQuery.getString("s_teacher"); // 通过获取的数据实例化学生类(CRM关系映射) Student student = new Student(s_id,s_name,s_gender,s_phone,s_class_id,s_teacher); // 将学生类添加到集合 list.add(student); }