表中字段id,content,final,我要读出content,对其进行处理后,把得到的结果插入到final字段,处理过程若有异常,则让final为invalid
try
{
stmt=con.createStatement();
sql="select * from table where id between 1 and 5";
rs=stmt.executeQuery(sql);
while(rs.next())
{
try
{
id_num=rs.getInt("id");
InputStream in=rs.getBinaryStream("content");
final_content =do(in);//处理content
}
catch(Exception ex)
{
System.out.println("inside_Exception: "+ex.getMessage());
final_content="invalid";
}
finally
{
String sql_update="update table set final='"+final_content+"' where id="+id_num+"";
stmt.executeUpdate(sql_update);
}
}
}catch(Exception exc)
{
System.out.println("outside_Exception: "+exc.getMessage());
}如果去掉finaly语句,则能连续执行5次循环,但加上后只能执行一次,输出
inside_Exception:.........(这个能理解,是处理中的异常)
outside_Exception: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.(这个不理解)
难道是rs对象被关闭了吗?
不知道是否有更好的方法解决这个问题呢?
try
{
stmt=con.createStatement();
sql="select * from table where id between 1 and 5";
rs=stmt.executeQuery(sql);
while(rs.next())
{
try
{
id_num=rs.getInt("id");
InputStream in=rs.getBinaryStream("content");
final_content =do(in);//处理content
}
catch(Exception ex)
{
System.out.println("inside_Exception: "+ex.getMessage());
final_content="invalid";
}
finally
{
String sql_update="update table set final='"+final_content+"' where id="+id_num+"";
stmt.executeUpdate(sql_update);
}
}
}catch(Exception exc)
{
System.out.println("outside_Exception: "+exc.getMessage());
}如果去掉finaly语句,则能连续执行5次循环,但加上后只能执行一次,输出
inside_Exception:.........(这个能理解,是处理中的异常)
outside_Exception: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.(这个不理解)
难道是rs对象被关闭了吗?
不知道是否有更好的方法解决这个问题呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货