首页 新闻 赞助 找找看

各位大神 在mybatis中用<foreach>怎么写

0
悬赏园豆:50 [已解决问题] 解决于 2018-08-29 16:39

for (Map<String,String> m : maps)  
                    {  
                      for (String k : m.keySet())  
                      {  
                          if(k.equals("value")){
                                  t.setId(null);
                                 t.setArcfondno(m.get(k));
                                 Long sort= getSortid(m.get(k));
                                 t.setAccessno("0"+(sort+1));
                                 t.setSortid( (sort+1));
                                 arcfieldtomaintainDao.merge(t);
                          }
                        
                      }  
                    }

KpGo的主页 KpGo | 初学一级 | 园豆:4
提问于:2018-08-07 11:51

现在想的就是将 这两个循环放到mybatis的xml中 但是纠结在 在xml中怎么写 比如m.keySet() 、t.setArcfondno(m.get(k)) 这些 在xml不能直接点了吧

KpGo 5年前
< >
分享
最佳答案
0

xml中只能写SQL 或者是 拼接SQL 你要实现的是赋值   只能通过代码  

收获园豆:30
胖头陀春天 | 菜鸟二级 |园豆:283 | 2018-08-07 14:34
其他回答(2)
0

xml中就是foreach标签了,判断就是if,when标签咯,如果有使用比较频繁的sql,你可以提前定义一个<sql>,然后再<include>进来

收获园豆:10
丁宿 | 园豆:18 (初学一级) | 2018-08-07 17:46
1

给你你参考下,我的使用

insert into jrqf_officialcard

 (id, budget_unit, money_purpose, economic_type, money, func_subject_name,
 treasury_accountbank, merchant_name)
 select t.* from(
  <foreach collection ="myList" item="fb" separator ="UNION ALL">
  select
  #{fb.id},
  #{fb.budget_unit} ,
  #{fb.money_purpose} ,
  #{fb.economic_type} ,
  #{fb.money,jdbcType=FLOAT},  
  #{fb.func_subject_name} ,
  #{fb.treasury_accountbank} ,
  #{fb.merchant_name}
   FROM DUAL
  </foreach >)t
收获园豆:10
ckx0709 | 园豆:414 (菜鸟二级) | 2018-08-14 18:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册