| 发表于:2007-05-08 15:58:022楼 得分:0 |
可我每次用完后都关闭了rs和cs,有时还是会出现这种情况。 ****************代码如下***************** public object[] getpagerecord(datasource ds, int pagesize, int curpage, string sqlstr, string sqlcountstr) { callablestatement cs; connection conn = null; try { conn = ds.getconnection(); } catch (sqlexception e1) { // todo 自动生成 catch 块 e1.printstacktrace(); } try { cs = conn.preparecall( "{call curspkg.sp_page(?,?,?,?,?,?)} "); cs.setint(1, pagesize); // 每页显示记录数 cs.setint(2, curpage); // 当前页号 cs.setstring(3, sqlstr); // 查询分页记录集的sql语句 cs.setstring(4, sqlcountstr); // 查询总记录数的sql语句 cs.registeroutparameter(5, oracletypes.integer); // 返回总记录数 cs.registeroutparameter(6, oracletypes.cursor); // 返回游标记录集 cs.EXECute(); // 返回总记录数 int recordcount = ((oraclecallablestatement) cs).getint(5); // 所需总页数 int totalpage = recordcount / pagesize; if (recordcount % pagesize != 0) { totalpage++; } resultset rs = ((oraclecallablestatement) cs).getcursor(6); arraylist recordlist = new arraylist(); while (rs.next()) { userform form = new userform(); form.setuserid(rs.getint( "userid ")); form.setnickname(rs.getstring( "nickname ")); form.setusername(rs.getstring( "username ")); form.setsex(rs.getstring( "sex ")); form.setaddress(rs.getstring( "address ")); form.setbirthday(rs.getstring( "birthday ")); form.setemail(rs.getstring( "email ")); form.sethomepage(rs.getstring( "homepage ")); form.setqq(rs.getstring( "qq ")); form.settelephone(rs.getstring( "telephone ")); form.setuserpwd(rs.getstring( "userpwd ")); form.setpwdquestion(rs.getstring( "pwdquestion ")); form.setpwdresult(rs.getstring( "pwdresult ")); form.setface(rs.getstring( "face ")); recordlist.add(form); } rs.close(); cs.close(); object[] pagereturnarray = { recordlist, totalpage + " ", recordcount + " " }; return pagereturnarray; } catch (sqlexception e) { // todo 自动生成 catch 块 e.printstacktrace(); return null; } finally { try { conn.close(); } catch (sqlexception e) { // todo 自动生成 catch 块 e.printstacktrace(); } } } | | |
|