本章目标
掌握ResultSet接口的主要作用
使用ResultSet接口查询数据

 

ResultSet接口
使用SQL中的SELECT语句可以将数据库的全部结果查询出来,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容。

ResultSet接口的常用操作方法

ResultSet接口_数据库


 

从 consumer 表中查询数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ResultSetDemo01 {
	public static void main(String[] args) throws Exception {
		//oracle.jdbc.driver.OracleDriver 数据库驱动程序
		//jdbc:oracle:thin:gome/gome@localhost:1521:oracle11 连接数据库
		Connection conn=null; //数据库连接
		Statement stmt = null;//数据库操作
		ResultSet rs = null;//保存查询结果
		String sql = "select id, name, age, sex, birthday from consumer";
		Class.forName("oracle.jdbc.driver.OracleDriver");  //加载驱动程序
		//连接数据库
		conn=DriverManager.getConnection("jdbc:oracle:thin:gome/gome@localhost:1521:oracle11");  
		stmt = conn.createStatement();//实例化 Statement 对象
		rs = stmt.executeQuery(sql);//实例化 ResultSet 对象
		while(rs.next()){//指针向下移动
			int id = rs.getInt("id");//取得 id 内容
			String name = rs.getString("name");//取得 name 内容
			int age = rs.getInt("age");//取得 age 内容
			String sex =rs.getString("sex");//取得 sex 内容
			java.util.Date birthday = rs.getDate("birthday");//取得 birthday 内容
			System.out.print("编号:"+id+"; ");//输出编号
			System.out.print("姓名:"+name+"; ");//输出姓名
			System.out.print("年龄:"+age+"; ");//输出年龄
			System.out.print("性别:"+sex+"; ");//输出性别
			System.out.print("生日:"+birthday);//输出生日
			System.out.println("\n-----------------------------");//换行
		}
		rs.close();//关闭结果集
		stmt.close();//操作关闭
		conn.close();  //数据库关闭
	}
/* 结果:
 * 编号:17; 姓名:chaoyv; 年龄:31; 性别:男; 生日:2014-07-01
 * -----------------------------
 * 编号:2; 姓名:chaoyi; 年龄:30; 性别:男; 生日:2014-07-02
 * -----------------------------
 * 编号:3; 姓名:yike; 年龄:31; 性别:男; 生日:2014-07-03
 * -----------------------------
 * */
}

 

通过编号取出数据
在执行查询语句的时候,是将数据库中的查询结果返回到内存之中,所以rs.next()的作用,是将返回的结果依次判断,如果有结果,则使用getXxx()语句的形式将内容取出。当然,如果感觉以上代码再取出数据的时候输入列的名称比较麻烦,则可以按取值的顺序采用编号的形式将内容取出。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ResultSetDemo02 {
	public static void main(String[] args) throws Exception {
		//oracle.jdbc.driver.OracleDriver 数据库驱动程序
		//jdbc:oracle:thin:gome/gome@localhost:1521:oracle11 连接数据库
		Connection conn=null; //数据库连接
		Statement stmt = null;//数据库操作
		ResultSet rs = null;//保存查询结果
		String sql = "select id, name, age, sex, birthday from consumer";
		Class.forName("oracle.jdbc.driver.OracleDriver");  //加载驱动程序
		//连接数据库
		conn=DriverManager.getConnection("jdbc:oracle:thin:gome/gome@localhost:1521:oracle11");  
		stmt = conn.createStatement();//实例化 Statement 对象
		rs = stmt.executeQuery(sql);//实例化 ResultSet 对象
		while(rs.next()){//指针向下移动
			int id = rs.getInt(1);//取得 id 内容
			String name = rs.getString(2);//取得 name 内容
			int age = rs.getInt(3);//取得 age 内容
			String sex =rs.getString(4);//取得 sex 内容
			java.util.Date birthday = rs.getDate(5);//取得 birthday 内容
			System.out.print("编号:"+id+"; ");//输出编号
			System.out.print("姓名:"+name+"; ");//输出姓名
			System.out.print("年龄:"+age+"; ");//输出年龄
			System.out.print("性别:"+sex+"; ");//输出性别
			System.out.print("生日:"+birthday);//输出生日
			System.out.println("\n-----------------------------");//换行
		}
		rs.close();//关闭结果集
		stmt.close();//操作关闭
		conn.close();  //数据库关闭
	}
/* 结果:
 * 编号:17; 姓名:chaoyv; 年龄:31; 性别:男; 生日:2014-07-01
 * -----------------------------
 * 编号:2; 姓名:chaoyi; 年龄:30; 性别:男; 生日:2014-07-02
 * -----------------------------
 * 编号:3; 姓名:yike; 年龄:31; 性别:男; 生日:2014-07-03
 * -----------------------------
 * */
}