简介

ResultSet接口的特点
ResultSet用来存放数据库查询操作获得结果集,通过对ResultSet的操作可以获取查询到的结果集数据。
注意:ResultSet 对象中存放的并不是我们查询到的所有的结果集。它采用分块加载的方式来载入结果集数据。

ResultSet特点

  • ResultSet 对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next 方法将指针移动到下一行;因为该方法在 ResultSet 对象中没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
  • 默认的 ResultSet 对象仅有一个向前移动的指针。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。
  • ResultSet 接口提供用于获取当前行检索列值的获取方法(getBoolean、getLong 等)。可以使用列的索引位置或列的名称检索值。

使用原理
image.png

通过ResultSet获取查询结果

  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. public class ResultSetTest {
  5. /**
  6. * 查询所有用户
  7. */
  8. public void selectUsers(){
  9. Connection connection = null;
  10. PreparedStatement preparedStatement = null;
  11. ResultSet resultSet = null;
  12. try {
  13. connection = JDBCUtils.getConnection();
  14. preparedStatement = connection.prepareStatement("select * from users");
  15. resultSet=preparedStatement.executeQuery();
  16. while(resultSet.next()){
  17. int userid = resultSet.getInt("userid");
  18. String username = resultSet.getString("username");
  19. int userage = resultSet.getInt("USERAGE"); //不区分大小写
  20. System.out.println(userid+" "+username+" "+userage);
  21. }
  22. }catch (Exception e){
  23. e.printStackTrace();
  24. }finally {
  25. JDBCUtils.clossResource(resultSet,preparedStatement,connection);
  26. }
  27. }
  28. }