DB2用mybatis批量update的问题

这是Test.java里测试用的代码ApplicationContextac=newClassPathXmlApplicationContext("spring-myba... 这是Test.java里测试用的代码
ApplicationContext ac = new ClassPathXmlApplicationContext("spring-mybatis.xml");
JobNodeLnkMapper mapper = ac.getBean("jobNodeLnkMapper", JobNodeLnkMapper.class);
JobNodeLnk[] jobNodeLnks = new JobNodeLnk[5];
JobNodeLnk lnk = null;
for (int i = 0; i < 5; i++) {
lnk = new JobNodeLnkImpl(Long.parseLong(String.valueOf(62+i)),Long.parseLong(String.valueOf((i+5))),Long.parseLong(String.valueOf((i+5))));
jobNodeLnks[i] = lnk;
}
for (int i = 0; i < 5; i++) {
System.out.println(jobNodeLnks[i].toString());
}
System.out.println(mapper.updateJobNodeLnks(jobNodeLnks));
这是Mapper.xml里的语句
<update id="updateJobNodeLnks" parameterType="dayu.dmc.bean.impl.JobNodeLnkImpl">
<foreach collection="array" item="item">
update ysbase_dmc_jobNodeLnk set nodeid=#{item.nodeId} where id=#{item.id};
</foreach>
</update>
### The error occurred while setting parameters

### SQL: update ysbase_dmc_jobNodeLnk set nodeid=? where id=?;update ysbase_dmc_jobNodeLnk set nodeid=? where id=?;update ysbase_dmc_jobNodeLnk set nodeid=? where id=?;update ysbase_dmc_jobNodeLnk set nodeid=? where id=?;update ysbase_dmc_jobNodeLnk set nodeid=? where id=?
### Cause: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=update YSBASE_DMC_JOBNODELNK set NODEID=? w;BEGIN-OF-STATEMENT;<space>, DRIVER=4.16.53
; bad SQL grammar []; nested exception is com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=update YSBASE_DMC_JOBNODELNK set NODEID=? w;BEGIN-OF-STATEMENT;<space>, DRIVER=4.16.53
展开
 我来答
DoramiHe
2018-08-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
MySQL没有提供直接的方法来实现批量,但可以使用case when语法来实现这个功能。
UPDATE course
SET name = CASE id
WHEN 1 THEN 'name1'
WHEN 2 THEN 'name2'
WHEN 3 THEN 'name3'
END,
title = CASE id
WHEN 1 THEN 'New Title 1'
WHEN 2 THEN 'New Title 2'
WHEN 3 THEN 'New Title 3'
END
WHERE id IN (1,2,3)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式