可滚动的结果集

可滚动的结果集_第1张图片

写一个Java程序,往temp表里插入100条数据。

PrepareTableData.java :

public class PrepareTableData {

	public static void main(String[] args) {
		Connection conn=null;
		PreparedStatement pstmt=null;
		String sql="insert into temp values(?,?)";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.
					getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
			conn.setAutoCommit(false);
			pstmt=conn.prepareStatement(sql);
			for(int i=1;i<=100;i++){
				pstmt.setInt(1,i);
				pstmt.setString(2,"question"+i);
				pstmt.addBatch();
			}
			pstmt.executeBatch();
			conn.commit();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭资源
		}
		
	}

}
进入正题:可滚动的结果集

可滚动的结果集_第2张图片

ResultSet_Scroll.java :

public class ResultSet_Scroll {

	public static void main(String[] args) {
		Connection conn=null;
		Statement stmt=null;
		String sql="select * from temp";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.
					getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
			stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			ResultSet rs=stmt.executeQuery(sql);
			rs.first();
			System.out.println("第1题为:"+rs.getString("question"));
			rs.last();
			System.out.println("第100题为:"+rs.getString("question"));
			rs.absolute(78);
			System.out.println("第78题为:"+rs.getString("question"));
			rs.relative(-10);
			System.out.println("第68题为:"+rs.getString("question"));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭资源
		}
		
	}

}

Exam_Online.java :

public class Exam_Online {

	/**
	 * 随机选取10道题,必须保证试题不能重复
	 * @param args
	 */
	public static void main(String[] args) {
		Connection conn=null;
		Statement stmt=null;
		String sql="select * from temp";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.
					getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
			stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			ResultSet rs=stmt.executeQuery(sql);
			Set papers=new HashSet();
			Random r=new Random();
			
			do{
				papers.add(r.nextInt(100)+1);
			}while(papers.size()<10);
			
			for(Integer i:papers){
				rs.absolute(i);
				System.out.println(rs.getString("question"));
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭资源
		}
		
	}

}
可滚动的结果集_第3张图片




你可能感兴趣的:(JDBC)