报的错误和你的这句代码有关系:Statement stm=con.createStatement();换成这个试试:
Statement stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_READ_ONLY);

解决方案 »

  1.   

    public class PageQuery
    {
    Connection con;
    Statement st;
    ResultSet rs;
    public final int maxNum=15;
    int num=15;
    int totalNum=0;
    int pageNum=0;
    int i=0;
    DataConnection one;

    public PageQuery()
    {

    }

    public ResultSet PageNum(int pagenum,String sql)
    {

    try
    {
    pageNum=pagenum;
    one=new DataConnection();
    con=one.getConnect();
    st=con.createStatemen    (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=st.executeQuery(sql);
    rs.last();
    totalNum=rs.getRow();
    if(pagenum-1>0)
    {
    rs.absolute((pagenum-1)*maxNum);
    }
    else
    {
    rs.beforeFirst();
    }

    if(totalNum-(pageNum-1)*maxNum>0)
    {
    if(totalNum-(pageNum-1)*maxNum>maxNum)
    {
    num=15;
    }
    else
    {
    num=totalNum-(pageNum-1)*maxNum;
    }
    }
    else
    {
    num=0;
    }

    }
    catch(SQLException e)
    {
    System.out.println(e.getMessage());
    rs=null;
    }

    return rs;

    }

    public void dataClose()
    {
    try
    {

    st.close();
    con.close();
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    }
    public int getTotalNum() //返回总记录数
    {
    return totalNum;
    }
    public int getPageNum() //返回总页数
    {

    pageNum=(totalNum-1)/maxNum+1;
    return pageNum;
    }
    public int getNum()//返回当前页的记录数
    {
    return num;
    }
    }