检查resultset是否用了last(),或者循环到了结果集末尾,在这之后再对结果集进行取值操作会产生此错误,贴出你的代码
解决方案 »
- 两数据库连接同时执行数据库插入操作时发生ArrayIndexOutofBoundException
- min(sysdate-to_date('t2.FIRST_ORD_DATE','yyyymmdd'))
- ORACLE IMP 未知字符集标记错误 高手来帮忙啊!!
- distinct跟group by的区别
- oracle用户
- 求解ANALYZE语句中的3个关键字的作用!
- 又一个sql语句的奇怪现象
- 有关大型文件存取的问题,高手救我!!以身相许.
- 各位大侠对于数据库的模糊搜索(使用like)的效率优化方面有何建议?
- 请Oracle家教一名
- 如何获得存储过程的脚本
- 怎样建一个用户帐户,把密码也加上,并且给他授予一个角色,用语句实现》
String CS_STATEMENT = "select napininfo.kind,napininfo.proid,napininfo.zwsid,napininfo.bundle_n,napininfo.num_n,napininfo.usaprice,napininfo.usamoney_n,napininfo.japprice,"
+"napininfo.japmoney_n,napininfo.fanpin,productinfo.pdtname,productinfo.grade,productinfo.pdtcode,zws.zwscode from "
+"napininfo,productinfo,zws where napininfo.proid = productinfo.pdtid and napininfo.zwsid = zws.zwsid and napininfo.dtn =? order by napininfo.fanpin";//得到子纪录集的条数
ps = conn.prepareStatement(CC_STATEMENT);
ps.setString(1,conditionString);
childRS = ps.executeQuery();
childRS.next(); //记录集中指的第一条纪录不是真正的有效纪录
int total = childRS.getInt(1);
childRS.close();
ps.close();
//获得数据
ps = conn.prepareStatement(CS_STATEMENT);
ps.setString(1,conditionString);
childRS = ps.executeQuery();
if(start >= 0 && start < total){
List items = new ArrayList(); //存放正品和返品
List itemsFanPin = new ArrayList(); //存放返品
//rs.absolute(start + 1);jdbc2.0不支持这个方法
//这个循环的作用是把游标移到想要操作的位置
while(copyStart-- >= 0){
childRS.next();
}
//因为在jdbc2.0中记录集的移动没有一个判断结束的标志
if((start + count) > total ){
count = total - start;
}
int kindType = 0;
String strProductClassify;
while(count-- > 0){
kindType = childRS.getInt("kind");
if(kindType == 1){
strProductClassify = "加工品";
}else{
strProductClassify = "非加工品";
}
pci = new ProductChildInfo(strProductClassify,childRS.getString("pdtcode"),childRS.getString("grade"),childRS.getString("pdtname"),childRS.getString("zwscode"),
childRS.getInt("bundle_n"),childRS.getInt("num_n"),childRS.getFloat("usaprice"),childRS.getFloat("usamoney_n"),childRS.getFloat("japprice"),
childRS.getFloat("japmoney_n"),PRODUCT_NOACTION,childRS.getInt("fanpin"));
pci.setProID(childRS.getInt("proid"));
pci.setZwsID(childRS.getInt("zwsid"));
items.add(pci);
//往items变量中加入纪录
childRS.next();
}
不会比记录集总数还大吧?
childRS.close();
ps.close();
//获得数据