求助操作ResultSet的操作

jlbo 2005-03-21 03:50:39
实现多个条件查询
我想先用第一个条件查出一个resultset
然后在用第二个条件判断,不满足条件的从resultset中去掉,但是不从数据库中删除
然后判断是否满足第三个条件……
问题:
是不是用deleteRow()方法,我查deleteRow()好象也操作数据库记录。
我使用这个方法时候出现ResultSet not updatable异常
import java.sql.*;
class JDBCExample
{
public static void main(String[] args)
{
try
{
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://10.60.43.145/test";
Connection conn=DriverManager.getConnection(url,"root","");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE
);
ResultSet rs=stmt.executeQuery("select * from mytable");

//
while(rs.next())
{
if(rs.getString(1).equals("a1b"))
{
rs.deleteRow();
}
else{
System.out.println(rs.getString(2));
System.out.println(rs.getString(1));
}
}


}
catch (Exception e)
{
e.printStackTrace();
}
}
}
...全文
77 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
trampwind 2005-03-21
  • 打赏
  • 举报
回复
那确实没找到这样的方法,我翻了下ResultSet的方法集没见到。我觉得你这种想法有问题,建议你:1.要么就从结果集中取出你需要的记录
2.在SQL中加入你的筛选条件,你不想要的记录就不要查出来,浪费系统资源不说还要自己去处理结果(推荐要什么就查什么)
jlbo 2005-03-21
  • 打赏
  • 举报
回复
谢谢随风的回复
我要做的是复杂查询,需要用一个函数把用户输入的变换一下,在把数据库中的记录也变换一下,两者再比较。
我想假如每次能通过筛选一下resultset来得到一次结果能比较清晰。否则用if套if中间将包含很长的代码。
事实上我也是用if实现的只有一个条件的复杂查询,不知道有没有方法能操作resultset
(最好能把无用记录从resultset中去掉而不是直接rs.previous())
再次谢谢随风。
trampwind 2005-03-21
  • 打赏
  • 举报
回复
干吗要从ResultSet中把某些结果去掉,你只需要按照条件把你想要的结果从结果集中取出来就行了,你所说的几个判断干吗不用几个and(&&) 连接起来判断得到最终想要的或者
if(){else if() {else if(){}}} (如果你想对不同的不满足条件记录做不同处理的话)
再或者你可以直接在SQL语句中过虑掉那些不必要的记录
deleteRow()会把数据库中对应记录也删除掉的
你最终需要展示的东西只需要是从结果集中取出满足你要的条件的东西,不必要是按照你所列的每个条件从结果集中去掉不满足条件的记录后再从结果集中取出来展示,那不多了些无谓的操作么。

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧