请教个问题


import java.sql.*;
import database.*;
import java.util.*;

/*###################程序开始#####################*/
public class Comm_Div_Page {
private int l_start; //开始纪录
private int l_end; //结束纪录
private int l_curpage; //当前页数
private int l_totalnum; //总记录数
private int m_page_count ; //每页记录条数
private int l_totalpage; //总的页数
private String m_sql; //对应SQL语句
private int totalnum = 0;

///////////////////////////输入值///////////////////////////////
public void setsql(String sql) {
this.m_sql = sql;
}
/**
* 作用 初始化 currentpage 得到记录总数
* l_curpage = currentpage; //当前页
* l_totalnum = totalnum; //总记录条数
* */
public void Init(int currentpage,int page_count) throws Exception {
m_page_count=page_count; //每页记录条数
l_curpage = currentpage;
DBConnect con=new DBConnect();
Connection conn= con.getConnection();
PreparedStatement stm=conn.prepareStatement(m_sql);
ResultSet rst_count = stm.executeQuery();
this.totalnum = rst_count.getFetchSize(); //得到总记录条数
rst_count.close();
rst_count = null;
stm.close();
stm = null;
l_totalnum = totalnum;

if (currentpage >= 0) { //如果 currentpage>=0 当前页
/* Math.round();是采用四舍五入方式取得最接近的整数。
Math.ceil();是向上取得一个最接近的整数,
Math.floor()和Math.ceil()相反,
Math.floor();向下 取得一个最接近的整数
*/
/*
总页数:(long)Math.ceil((double)l_totalnum/(double)int_num)
当前页:currentpage
如果 当前页>=总页数,
*/

if (currentpage >=
(int) Math.ceil((double) l_totalnum / (double) m_page_count))
l_curpage = (int) Math.floor((double) l_totalnum /
(double) m_page_count);
else
l_curpage = currentpage;
}
else {
l_curpage = 0;
}
l_start = l_curpage * m_page_count; //开始(当页首条)记录= 当前页*每页条数
l_end = l_start + m_page_count; //尾记录(当页最后一条记录)=开始(当页首条)记录+每页条数
if (l_end > l_totalnum) //如果 尾记录数>总记录数
l_end = l_totalnum; //则尾记录=总记录
l_totalpage = (int) Math.ceil((double) l_totalnum / (double) m_page_count); //总页数+1
}

public int getCurpage() {
return l_curpage; //返回当前页
}

public int getPrepage() { //前一页 ,初始页为.jsp?currentpage=0
if (l_curpage - 1 >= 0) {
return l_curpage - 1; //返回前一页
}
else {
return 0; //返回 .jsp?currentpage=0
}
}

public int getNextpage() { //下一页
if (l_curpage + 1 <= l_totalpage) { //如果 当前页码<总页数
return l_curpage + 1; //下一页
}
else {
return l_totalpage; // 当前页就是最后一页 l_curpage=l_totalpage
}
}

public int getTotalnum() { //总记录条数
return l_totalnum;
}

public int getTotalpage() { //总页数
return l_totalpage;
}

public int getStart() { //开始记录
return l_start;
}

public int getEnd() { //结束记录
return l_end;
}

/*****
*执行SQL查询
*将查询结果以数组存放在Vector中
*返回Vector
*/
public Vector executeSql(int FieldCount) throws Exception {
DBConnect con=new DBConnect();
Vector vec=new Vector();
Connection conn= con.getConnection();
PreparedStatement stm = conn.prepareStatement(m_sql);
ResultSet rst = stm.executeQuery();
int m_int;
while(rst.next()){
String m_row[]=new String[FieldCount];
for(int i=0;i<FieldCount;i++)
{
m_int=i+1;
m_row=rst.getString(m_int);
}
vec.add(m_row);
}
System.out.print(vec.size());
return vec;
}

}
这段代码有个问题:对象实例化后,调用init初始化,l_end应该是有值的,可是再调用 getEnd方法取l_end时,值就变成了0。我想问下这是什么原因?该怎么解决?

光看代码,谁都很难一下子给出原因,自己拉到IDE中调试一下不就得了?

是不是参数没有传递过去?

问题解决了,谢谢!