JDBC可滚动可更新感知更新结果集2

/**

  * 可滚动结果集滚动测试

  */

  public static void testScrollResultSet() {

  Connection conn = DBToolkit.getConnection();

  String sql = "SELECT * FROM book";

  try {

  Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

  ResultSet rs = stmt.executeQuery(sql);

  while (rs.next()) {

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  }

System.out.println("------前滚操作-----");

  //将光标移动到此 ResultSet 对象的上一行

  rs.previous();

  rs.previous();

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  System.out.println("------绝对定位-----");

  //将光标移动到此 ResultSet 对象的给定行编号。

  rs.absolute(3);

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  System.out.println("------移动到第一行-----");

  //将光标移动到此 ResultSet 对象的第一行。

  if (rs.first()) {

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  }

  System.out.println("------移动到最后一行-----");

  //将光标移动到此 ResultSet 对象的第一行。

  if (rs.last()) {

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  }

  System.out.println("------移动到第一行之前-----");

  //将光标移动到此 ResultSet 对象的开头,正好位于第一行之前

  rs.beforeFirst();

  rs.next();

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  System.out.println("------移动到最后一行之后-----");

  //将光标移动到此 ResultSet 对象的末尾,正好位于最后一行之后。

  rs.afterLast();

  rs.previous();

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  System.out.println("------相对当前行做移动-----");

  rs.relative(-2);

  System.out.println("[行号:" + rs.getRow() + "]\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

  rs.close();

  stmt.close();

  } catch (SQLException e) {

  e.printStackTrace();

  } finally {

  DBToolkit.closeConnection(conn);

  }

  }

  }

  控制台输出:

  [行号:1]  1  aaa  a

  [行号:2]  2  bbb  b

  [行号:3]  3  ccc  c

  [行号:4]  4  ddd  d

  [行号:5]  5  eee  e

  [行号:6]  6  fff  f

  [行号:7]  7  ggg  g

  [行号:8]  8  hhh  h

  ------前滚操作-----

  [行号:7]  7  ggg  g

  ------绝对定位-----

  [行号:3]  3  ccc  c

  ------移动到第一行-----

  [行号:1]  1  aaa  a

  ------移动到最后一行-----
[行号:8]  8  hhh  h

  ------移动到第一行之前-----

  [行号:1]  1  aaa  a

  ------移动到最后一行之后-----

  [行号:8]  8  hhh  h

  ------相对当前行做移动-----

  [行号:6]  6  fff  f

  ---------原结果集--------

  [行号:1]  1  aaa  a

  [行号:2]  2  bbb  b

  [行号:3]  3  ccc  c

  [行号:4]  4  ddd  d

  [行号:5]  5  eee  e

  [行号:6]  6  fff  f

  [行号:7]  7  ggg  g

  [行号:8]  8  hhh  h

  ---------插入一条记录--------

  -------------更新一条记录-------------

  ---------插入更新后的结果集--------

  [行号:1]  1  aaa  a

  [行号:2]  2  bbb  b

  [行号:3]  3  uuuu  u

  [行号:4]  4  ddd  d

  [行号:5]  5  eee  e

  [行号:6]  6  fff  f

  [行号:7]  7  ggg  g

  [行号:8]  8  hhh  h

  [行号:9]  9  xxxx  x

你可能感兴趣的:(sql,C++,c,jdbc,C#)