temp表如上结构,里面一共有94条数据。
PageDemo.java :
public class PageDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(true){
int page=sc.nextInt();
getResult(page);
}
}
public static int getTotalCount(){//计算数据表中记录总条数
int n=-1;
Connection conn=null;
Statement stmt=null;
String sql="select count(*) nums from temp";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.
getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();
n=rs.getInt("nums");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return n;
}
public static int getTotalPages(){//每页显示10条记录
int totalCount=getTotalCount();
int pages=0;
if(totalCount%10==0){
pages=totalCount/10;
}else{
pages=totalCount/10+1;
}
return pages;
}
public static void getResult(int page){
int from=(page-1)*10+1;
int to=from+10;
Connection conn=null;
PreparedStatement pstmt=null;
String sql="select id,question,rn " +
"from " +
"(select id,question,rownum rn from temp where rownum<?) " +
"where rn>=?";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.
getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,to);
pstmt.setInt(2,from);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getInt("id")+":"+rs.getString("question"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}