我需要处理两种没有查到结果的情况:
一种是查询出错,catch SQLException就可以了;
但是如果查询是正确的,只是没有找到纪录,这种情况怎么判断呢?
代码贴出来
查询出错是指sql语句或者数据库那里有问题?
这样的catch SQLException就可以了;
没有找到记录用
if (!rs.next()) {
System.out.println("没有找到记录");
}
没找到记录是不会抛出异常的
查询后第一次rs.next()返回值可以反映出是否有记录
参考jdk api doc ResultSet.next()
statement s=conn.createstatement;
int tmp=s.excuteUpdate(sql);
根据返回的tmp代表更新行数,0表示没有更新,正数代表作用行数,负数代表出错/
没找到,可以return null;
因为java中很多地方需要判断null, 所以可以用null表示没找到
当然更进一步可以自己定义一个异常:如
public class MyException extends Exception {
MyException(String errorMsg){
super(errorMsg);
}
}
if (!rs.next()) {
throw new MyException("没有找到记录");
}
if (!rs.next())
System.out.println("無記錄");
sun 285考试规范中定义:
public class RecordNotFoundException extends Exception{
public RecordNotFoundException(String msg){
super(msg);
}
}
if (rs.next()==null){
throw new RecordNotFoundException("Record not found");
}
呵呵,跟rexoy一样