做了例子 分页的代码是这样 的
package com.tool;import java.sql.ResultSet;
import java.sql.ResultSetMetaData;import java.util.ArrayList;
public class PaginationBean {
private int pageSize=10;//每页显示的记录条数
private int pageNum=0;//总页数
private int pageId=1;//当前页码
private int size=0;//总记录条数
public ArrayList pagination(int pageId,String sql){
this.pageId=pageId;//把当前页码赋给属性pageId

ResultSet rs=null;//保存查询结果集
DBConnection dbcn=new DBConnection();
dbcn.connect();//取得连接
rs=dbcn.select(sql);//执行查询
try {
rs.last();//将记录移到最后一行
size=rs.getRow();//取得行号,其实就是总记录数
if(size%pageSize==0){
this.pageNum=size/pageSize;//计算总页数
}else{
this.pageNum=size/pageSize+1;//计算总页数
}
rs.beforeFirst(); //让记录游标返回第一条记录之前的位置
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

if(this.pageId<1)this.pageId=1;//如果当前页码pageId小于1,就让它等于1
if(this.pageId>this.pageNum)this.pageId=this.pageNum;//如果当前页码pageId大于总页码pageNum,则让它等于总页码

for(int i=0;i<(this.pageId-1)*pageSize;i++){//此循环的功能用于将记录定位在当前页pageId之前的那条记录
try {
rs.next();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
ArrayList allData=new ArrayList();//allData集合用于保存当前页的数据



try {
ResultSetMetaData rsmd=rs.getMetaData();//rsmd是代表了列信息的一个对象
int colnum=rsmd.getColumnCount();//取得列数

for(int j=0;j<pageSize;j++){//此循环用于取得当前页的数据
ArrayList al=new ArrayList();//保存当前的行的数据
if(!rs.next()){
break;//如果每页显示4条,但记录只剩下3条,当再没有记录时,用break结束循环
}
for(int n=1;n<=colnum;n++){//往当前行al集合里添加行数据,即将这行的每一列数据添加进集合
al.add(rs.getString(n));
}
allData.add(al);//将每一行的数据又存进:保存所有的行的数据的集合里面

}
dbcn.connectionClose();
return allData;//把总数据返回
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}

}
public int getPageNum(){
return this.pageNum;
}
public int getSize(){
return this.size;
}
public int getPageId() {
return pageId;
}
}jsp的页面是这样的<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@page import="com.javabean.UserInfo"%>
<%@page import="com.tool.PaginationBean"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
  <a href="add.jsp">增加</a>
    <%
     PaginationBean pnb=(PaginationBean)session.getAttribute("paginationbean");
     List list=(List)session.getAttribute("listall");
     if(list!=null&&list.size()>0){
    
     %>
     
     <table>
      <tr><td>id</td><td>name</td><td>操作</td></tr>
     
     <%
      for(int i=0;i<list.size();i++){
      List list2222=(List)list.get(i);
     
      %>
      <tr>
       <td><%=list2222.get(0) %></td><td><%=list2222.get(1) %></td>
       <td>
       <a href="UserInfoAction.do?method=preupdate&id=<%=list2222.get(0) %>">编辑</a>
       <a href="UserInfoAction.do?method=delete&id=<%=list2222.get(0) %>">删除</a>
       </td>
      </tr>
      <%} %>
    <tr ><td colspan=3 >  
  <a href="UserInfoAction.do?method=list&pageId=1">首页</a>  
    <a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageId()-1 %>">上一页</a>
    <a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageId()+1 %>">下一页</a>
    <a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageNum() %>">尾页</a>
    一共有<%=pnb.getSize() %>条留言,当前页为<%=pnb.getPageId() %>/<%=pnb.getPageNum() %>页<br><br><br><br><br><br><br></td></tr>
      </table>
      
      <%} %>
  </body>
</html>
查询出来的数据时正序的  怎么改让其显示为倒序 啊 ?比如查询出来是 如id是123456   怎么改成显示654321的倒序  

解决方案 »

  1.   

    sql做desc排序就行了
    不知道你是不是这个意思
      

  2.   

    package com.tool;import java.sql.Connection;import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;public class DBConnection {
    private final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private String DBURL="jdbc:sqlserver://127.0.0.1:1439;DatabaseName=zyx";
    private final String DBUSER="sa";
    private final String DBPASSWORD="123456";
    Connection conn=null;
    ResultSet rs=null;
    Statement st=null;
    public void connect(){
    try
    {
    Class.forName(DBDRIVER) ;
    this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
    }
    catch (Exception e)
    {e.printStackTrace();}
    }
    public ResultSet select(String sql){

    try {
    if(st==null){
    st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    }

    rs=st.executeQuery(sql);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return rs;
    }
    public int executeUpdate(String sql){
    int i=0;
    try {
    if(st==null){
    st = conn.createStatement();
    }
    i=st.executeUpdate(sql);
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    return i;


    }
    public void connectionClose(){
    try {
    if(rs!=null){
    rs.close();
    rs=null;
    }
    if(st!=null){
    st.close();
    st=null;
    }
    if(conn!=null){
    conn.close();
    conn=null;
    }
    } catch (Exception e) {
    e.printStackTrace();
    }

    }

    }
    我是这样连接sql2005的 难道要重新写吗?
      

  3.   

    sql语句变一下是不是就可以实现了
      

  4.   

    啥情况呀,分页都可以自己写了,oracle倒序不会,晕呀。偏科偏的有点太厉害