以下是一段示例程序,在gettable函数中,读取数据库的值,然后对于type为1的值,调用updateStatus来更新type值。不知道这样是否可以,由于无法测试,请各位帮忙看一下,多谢!
public int gettable(ArrayList vRows)
{
Statement statement=null;
ResultSet resultSet=null;
String query; try
{
query = "select * from table"; statement = connection.createStatement();
resultSet = statement.executeQuery(query);
DataModel model = null;
while (resultSet.next())
{
model = new DataModel();
String str1 = resultSet.getString(1);
model.setid(str1);
String str2 = resultSet.getString(2);
model.settype(str2);
if("1".equalsIgnoreCase(model.gettype()))
{
updateStatus(model);
/////////////////////查询的statement没有关闭的情况下,做更新
continue;
}
vRows.add(model);
}
}
catch(Exception sqlex)
{
System.out.println(new java.util.Date());
sqlex.printStackTrace();
}
finally
{
closeResultSet(resultSet);
closeStatement(statement);
}
return 0;
} public void updateStatus(DataModel model)
{
PreparedStatement statement = null; try
{
String update ="update table set TYPE ='2' WHERE ID = ?"; statement = connection.prepareStatement(update);
statement.setString(1, model.getid());
statement.executeUpdate();
}
catch (Exception sqlex)
{
System.out.println("************"+new java.util.Date()+"************");
sqlex.printStackTrace();
}
finally
{
closeStatement(statement);
}
}
public int gettable(ArrayList vRows)
{
Statement statement=null;
ResultSet resultSet=null;
String query; try
{
query = "select * from table"; statement = connection.createStatement();
resultSet = statement.executeQuery(query);
DataModel model = null;
while (resultSet.next())
{
model = new DataModel();
String str1 = resultSet.getString(1);
model.setid(str1);
String str2 = resultSet.getString(2);
model.settype(str2);
if("1".equalsIgnoreCase(model.gettype()))
{
updateStatus(model);
/////////////////////查询的statement没有关闭的情况下,做更新
continue;
}
vRows.add(model);
}
}
catch(Exception sqlex)
{
System.out.println(new java.util.Date());
sqlex.printStackTrace();
}
finally
{
closeResultSet(resultSet);
closeStatement(statement);
}
return 0;
} public void updateStatus(DataModel model)
{
PreparedStatement statement = null; try
{
String update ="update table set TYPE ='2' WHERE ID = ?"; statement = connection.prepareStatement(update);
statement.setString(1, model.getid());
statement.executeUpdate();
}
catch (Exception sqlex)
{
System.out.println("************"+new java.util.Date()+"************");
sqlex.printStackTrace();
}
finally
{
closeStatement(statement);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货