怎么从resultset中删除属性为整型列

如题所述

最好的办法是修改SQL语句,保证结果集是正确的。
如果不行的话,那就考虑下面的办法:
JDBC返回的ResultSet是只读的,不能修改和删除的,因此,如果需要保留ResultSet接口形式的话,那么就需要重新实现一个ResultSet接口。当然,如果不需要保留的话,就简单了。最傻的方法就是循环比较就能实现。
实现ResultSet有两种办法,第一种是首先把数据从ResultSet取出来,筛选后,保存在List或其他数据中,然后包装一个ResultSet。
第二种办法稍好一些,采用代理的方式,就是创建一个新的类如:FilteredResultSet 实现ResultSet接口。
FilteredResultSet implements ResultSet
{
ResultSet rawResultSet ;
}

ResultSet的大部分方法都直接代理就行,
假如结果集中的Orderby 条件是 order by A , B desc
也就是说,B=1的数据一定出现在B=-1的数据前面的话,就比较简单了。

只需要改写hasNext () 函数

private object lastAValue = null ;
boolean hasNext ()
{
while (rawResultSet.hasNext ())
{
// Get Cloum A
Object colAValue = getObject ("A") ;
// 检查colAValue是否和上一次记录的lastAValue相等?
if (! colAValue.equals (lastAValue ()))
{
lastAValue = colAValue ;
return true ;
}

// 这时B的值一定是-1了。。
直接跳过就行了。
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-08
最好的办法是修改SQL语句,保证结果集是正确的。
相似回答