向数据库里插入数据 不使用for循环 怎么实现

naive555 2017-08-30 01:37:30
我目前写的是 将数据查询出来 放到一个map集合中 然后通过for循环遍历 执行update语句 但是 会重复操作数据库 所以有没有好的办法 求各位大神赐教
...全文
625 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
迎风向前 2017-08-30
  • 打赏
  • 举报
回复
引用 6 楼 naive555 的回复:
[quote=引用 4 楼 qq_26262307 的回复:] 拼接sql语句,例如 StringBuilder sql = new StringBuilder( "update t_user set age=20 where id in "); sql.append("( "); for(int i =0 ;i<list.size();i++){ sql.append(user.getId()); if(i != list.size()-1){ sql.append(" , "); } } sql.append(")"); 直接执行此sql可以批量更新
那要更新的年龄不一样呢[/quote] 一般批量更新都是更新的一样的,例如订单状态成功失败。 不一样的你也可以拆分成多个啊 成功的一批记录,失败的一批记录分两次连接数据库,也可以啊! 不可能说所有的数据更新的都不一样,那你只能一条记录一个update了
naive555 2017-08-30
  • 打赏
  • 举报
回复
引用 4 楼 qq_26262307 的回复:
拼接sql语句,例如 StringBuilder sql = new StringBuilder( "update t_user set age=20 where id in "); sql.append("( "); for(int i =0 ;i<list.size();i++){ sql.append(user.getId()); if(i != list.size()-1){ sql.append(" , "); } } sql.append(")"); 直接执行此sql可以批量更新
那要更新的年龄不一样呢
艾伦蓝 2017-08-30
  • 打赏
  • 举报
回复
1.构建update语句 如:update table set c1=? where c2 = ? 2.dao.batchUpdate(sql,paramList)
迎风向前 2017-08-30
  • 打赏
  • 举报
回复
拼接sql语句,例如 StringBuilder sql = new StringBuilder( "update t_user set age=20 where id in "); sql.append("( "); for(int i =0 ;i<list.size();i++){ sql.append(user.getId()); if(i != list.size()-1){ sql.append(" , "); } } sql.append(")"); 直接执行此sql可以批量更新
ninochenc 2017-08-30
  • 打赏
  • 举报
回复
用mybatis的话可以在mapper文件里用foreach实现,如果不是,只能循环了
naive555 2017-08-30
  • 打赏
  • 举报
回复
引用 1 楼 u010049086 的回复:
删除,重新全部插入
我手里有板砖 就问你怕不
WonHyo 2017-08-30
  • 打赏
  • 举报
回复
删除,重新全部插入

50,523

社区成员

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

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