写一个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{
//关闭资源
}
}
}
进入正题:可滚动的结果集
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<Integer> papers=new HashSet<Integer>();
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{
//关闭资源
}
}
}