请大家帮我看看,为什么执行第二次的时候就报错java.util.ConcurrentModificationException

Mr. Dreamer Z 2017-04-16 08:12:48
for (InterStmt interStmt : list) {
String sql2 = "SELECT MIN(dealDate) from t_trans WHERE username = '" + interStmt.getAcctNo() + "'";
ptmt = conn.prepareStatement(sql2);
rs = ptmt.executeQuery();
while(rs.next())
{
iStmt = new InterStmt();
iStmt.setStartTime((rs.getString("MIN(dealDate)")));
list.add(iStmt);
}
}

做了一个循环,是为了拿到一个表中对应的日期。自己调试的时候发现第一次for循环可以执行,但是第二次的时候就报错了。请大家帮我看看这是为什么?
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
残风炫舞 2017-04-17
  • 打赏
  • 举报
回复
for (InterStmt interStmt : list) list.add(iStmt); 在for内部做引起list.size()变化的操作会在接下来程序到达for部分时报错 如果你改成for(int i=0;i<list.size();i++)可能会引起死循环 你思考下你的逻辑究竟想做到什么功能吧
Mr. Dreamer Z 2017-04-16
  • 打赏
  • 举报
回复
引用 1 楼 qq_37231612 的回复:
iStmt.setStartTime(rs.getString("MIN(dealDate)"));试试,这样写,里面少两个括号
。。。不是那个问题
从入门到要饭 2017-04-16
  • 打赏
  • 举报
回复
iStmt.setStartTime(rs.getString("MIN(dealDate)"));试试,这样写,里面少两个括号

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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