我的java分页查询出现这样的异常,请问怎么解决?java.sql.SQLException: 关闭的 Resultset: next
//分页获得账单信息publicList<Bill>getPageBillList(intPageNo,intPageSize){Connectionconn=null;...
//分页获得账单信息
public List<Bill> getPageBillList(int PageNo, int PageSize) {
Connection conn=null;
ResultSet rs=null;
conn=getConnection();
List<Bill> billList=new ArrayList<Bill>();
String sql="select id,name,amount,money,payable,provider,describe,billdate,providerid from(select id,name,amount,money,payable,provider,describe,billdate,providerid,rownum rn from billmgr) a where a.rn>? and a.rn<?";
Page page=new Page();
page.setCurrPageNo(PageNo);//设置当前页码
page.setPageSize(PageSize);//每页显示记录数
//计算sql语句其实记录数和结束记录数的行数
int startRow=page.getStartRows();
int endRow=page.getEndRows();
Object[]params={startRow,endRow};
rs=this.executesQl(sql, params);
try {
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
int amount=rs.getInt("amount");
String money=rs.getString("money");
String payable=rs.getString("payable");
String provider=rs.getString("provider");
String describe=rs.getString("describe");
Date date=rs.getDate("billdate");
int providerid=rs.getInt("providerid");
System.out.println("得到的id:"+id);
Bill bill=new Bill();
bill.setId(id);
bill.setName(name);
bill.setAmount(amount);
bill.setMoney(money);
bill.setPayable(payable);
bill.setProvider(provider);
bill.setDescribe(describe);
bill.setBilldate(new java.sql.Timestamp(date.getTime()));
bill.setProviderid(providerid);
billList.add(bill);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeRource(rs, null, conn);
}
return billList;
} 展开
public List<Bill> getPageBillList(int PageNo, int PageSize) {
Connection conn=null;
ResultSet rs=null;
conn=getConnection();
List<Bill> billList=new ArrayList<Bill>();
String sql="select id,name,amount,money,payable,provider,describe,billdate,providerid from(select id,name,amount,money,payable,provider,describe,billdate,providerid,rownum rn from billmgr) a where a.rn>? and a.rn<?";
Page page=new Page();
page.setCurrPageNo(PageNo);//设置当前页码
page.setPageSize(PageSize);//每页显示记录数
//计算sql语句其实记录数和结束记录数的行数
int startRow=page.getStartRows();
int endRow=page.getEndRows();
Object[]params={startRow,endRow};
rs=this.executesQl(sql, params);
try {
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
int amount=rs.getInt("amount");
String money=rs.getString("money");
String payable=rs.getString("payable");
String provider=rs.getString("provider");
String describe=rs.getString("describe");
Date date=rs.getDate("billdate");
int providerid=rs.getInt("providerid");
System.out.println("得到的id:"+id);
Bill bill=new Bill();
bill.setId(id);
bill.setName(name);
bill.setAmount(amount);
bill.setMoney(money);
bill.setPayable(payable);
bill.setProvider(provider);
bill.setDescribe(describe);
bill.setBilldate(new java.sql.Timestamp(date.getTime()));
bill.setProviderid(providerid);
billList.add(bill);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeRource(rs, null, conn);
}
return billList;
} 展开
展开全部
你应该是在这个方法executesQl
中已经关闭了resultset了,你看看。你为什么这么写呢?
就正常些,con,preparestatement,resultset就行了。
中已经关闭了resultset了,你看看。你为什么这么写呢?
就正常些,con,preparestatement,resultset就行了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this.executesQl(sql, params);要贴出来哦
可能是在这个方法里面把数据库连接给关掉了
可能是在这个方法里面把数据库连接给关掉了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
page可以拿StartRows(),EndRows()?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下你拼接的 sql语句 好像是他的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询