import java.sql.*; public class TestScroll { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Connection con = null; Statement stat = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydb"; //con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root"); con = DriverManager.getConnection(url, "root", "root"); //ResultSet.TYPE_SCROLL_INSENSITIVE:对指针的移动不敏感,即指针可以随意移动 //ResultSet.CONCUR_READ_ONLY: 该常量指示不可以更新的 ResultSet 对象的并发模式 stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = stat.executeQuery("select * ,name from people order by id"); /* while(rs.next()){ System.out.println(rs.getString("id")); } */ //取查询出第一行的数据 rs.next(); //打印第一行第一列的数据以INT类型显示出来 System.out.println(rs.getInt(1)); //直接跳到查询出所有数据的最后一行 rs.last(); //最后一行的第一列以字符串类型打印出来 System.out.println(rs.getString(1)); //打印是否是最后一行:TRUE System.out.println(rs.isLast()); //打印当前行的编号,即查询出所有记录的总数 System.out.println(rs.getRow()); //指针移向最后一行的下面 rs.next(); //判断是否是最后一行的下面:TRUE System.out.println(rs.isAfterLast()); //向上移一行 rs.previous(); rs.previous(); System.out.println(rs.getString(1)); //指针直接移至第7行 rs.absolute(7); System.out.println(rs.getString(1)); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException s){ s.printStackTrace(); }finally{ try{ if(con != null){ //如果con一开始就是null的话,如果不判断就一直出SQL异常,所以应该先判断一下 con.close(); con = null; } if(stat != null){ stat.close(); stat = null; } if(rs != null){ rs.close(); rs =null; } }catch(SQLException se){ se.printStackTrace(); } } } }