JDBC(3)—ResultSet结果集

  • 简介:ResultSet:结果集。封装了使用JDBC进行查询的结果。Statement只能进行更新操作,所以使用ResultSet进行查询操作。
    • 1.调用Statement对象的executeQuery(sql),可以得到结果集。
    • 2.ResultSet返回的实际上就是一张数据表,有一个指针指向第一个的前面,可以调用next(),检查下一行是否有效。
      *若有效返回true,且指针下移。
    • 3.每当指针移到一行时,可以通过调用getXxx(index)、getXxx(columnName)、获取每一列的值,例如:getInt(1)
      *getString(“name”)。
    • 4.ResultSet()也需要关闭。
  • 功能:获取id为6的customer数据表的记录,并打印。
  • 步骤:

    • 1.获取Connection连接
    • 2.获取Statement对象
    • 3.准备SQL语句
    • 4.执行查询,使用executeQuery(sql)方法
    • 5.处理ResultSet
    • 6.关闭数据库连接
  • 实例:

public class Resultset_3 {


    @Test
    public void testResultSet(){
        Connection conn = null;
        Statement state = null;
        ResultSet rs = null;
        try {
            //1.获取连接
            conn = TestTools.getConnection();
            //2.获取Statement
            state = conn.createStatement();
            //3.准备SQL语句
            //查询一条记录
            String sql = "select id, name, age, birth,address " +
                    "from customers where id = 6 "; 
            //查询所有记录
            String sql1 = "select id, name, age, birth,address " +
                    "from customers"; 
            //4.执行查询
            rs = state.executeQuery(sql1);
            System.out.println(rs);
            //5.处理ResultSet
            //if(rs.next()){
            while(rs.next()){
                int id = rs.getInt(1);//参数1表示:id在第一列
                String name = rs.getString(2);//参数2表示:name在第二列
                //String name = rs.getString("name");//参数name表示:别名
                String age = rs.getString(3);//参数3表示:age在第三列
                Date birth = rs.getDate(4);//参数4表示:birth在第四列
                String address = rs.getString(5);//参数5表示:aadress在第五列
                //输出查询结果
                System.out.println(id);
                System.out.println(name);
                System.out.println(age);
                System.out.println(birth);
                System.out.println(address);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(rs != null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(state != null){
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
原文地址:https://www.cnblogs.com/tengpengfei/p/10454022.html