ResultSet结果集的使用

一、ResultSet结果集的简介

    查询数据库时,返回的是一个二维的结果集,我们需要用到ResultSet来遍历结果集,获取每一行的数据。

二、使用ResultSet遍历查询结果

boolean next() 将光标从当前位置向前移一行。
String  getString(int columnIndex)  以java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值
String  getString(String columnLabel)  以java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import model.Book;
import util.DbUtil;

public class demo2 {

	/**
	 * getString(int columnIndex)使用
	 * @throws Exception
	 */
	private static void listBook() throws Exception{
		DbUtil dbUtil = new DbUtil();
		Connection con = dbUtil.getcon();
		String sql = "select * from t_book";
		PreparedStatement psta = con.prepareStatement(sql);
		ResultSet rs = psta.executeQuery();//返回结果集ResultSet
		while(rs.next()){
			int id = rs.getInt(1);// 获取第一个列的值 编号id
			String bookName = rs.getString(2);// 获取第二个列的值 图书名称 bookName
			String author = rs.getString(3);// 获取第三列的值 图书作者 author
			float price = rs.getFloat(4);// 获取第四列的值 图书价格 price
			System.out.println("id="+id+" bookName="+bookName
					            +" author="+author+" price="+price);
			System.out.println("................................................");
		}
	}
	/**
	 * getString(String columnLabel)使用
	 * @throws Exception
	 */
	private static void listBook2() throws Exception{
		DbUtil dbUtil = new DbUtil();
		Connection con = dbUtil.getcon();
		String sql = "select * from t_book";
		PreparedStatement psta = con.prepareStatement(sql);
		ResultSet rs = psta.executeQuery();
		while(rs.next()){
			int id = rs.getInt("id");// 获取第一个列的值 编号id
			String bookName = rs.getString("bookName"); // 获取第二个列的值 图书名称 bookName
			String author = rs.getString("author");// 获取第三列的值 图书作者 author
			float price = rs.getFloat("price");// 获取第四列的值 图书价格 price
			System.out.println("id="+id+" bookName="+bookName
					            +" author="+author+" price="+price);
			System.out.println("................................................");
		}
	}
	/**
	 * 使用list集合
	 * @return
	 * @throws Exception
	 */
	private static List<Book> listBook3()throws Exception{
		DbUtil dbUtil = new DbUtil();
		List<Book> bookList=new ArrayList<Book>(); 
		Connection con = dbUtil.getcon(); 
		String sql = "select * from t_book";
		PreparedStatement pstmt = con.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery(); 
		while (rs.next()) {
			int id = rs.getInt("id"); // 获取第一个列的值 编号id
			String bookName = rs.getString("bookName"); // 获取第二个列的值 图书名称 bookName
			String author = rs.getString("author"); // 获取第三列的值 图书作者 author
			float price = rs.getFloat("price"); // 获取第四列的值 图书价格 price
			Book book=new Book(id, bookName, author,price);//book对象实例化
			bookList.add(book);//添加进集合
		}
		return bookList;
	}
	public static void main(String[] args) throws Exception {
		
		//遍历集合
		List<Book> bookList=listBook3();
		for (Book book : bookList) {
			System.out.println(book);
		}
		//listBook3();
	}

}
打印的结果:

所以要在Book内重写toString方法:
	@Override
	public String toString() {
		return "[id=" + id + ", bookName=" + 
	            bookName + ", author=" + author +
	            ", price=" + price + "]";
	}
重写后的效果图:

猜你喜欢

转载自blog.csdn.net/above_my_point/article/details/78934163