我正在尝试使用apache camel(sql组件)来更新数据库。问题是数据库没有得到更新。当我对查询进行硬编码时,sql:update运行正常,但是当我尝试使用$ {body [0] [id]}时,它不会更新必填字段。有关可能出错的任何反馈意见?
from("direct:updateSql")
.to("sql:select * from mytable limit 1")
.log("update mytable set status = '100' where id = '${body[0][id]}'")
.to("sql:update mytable set status = '100' where id = '${body[0][id]}'")
.end();
请注意,status和id是整数字段,但如果我从.to()中删除',那么我会抛出一些错误。
答案 0 :(得分:1)
根据文档,您必须使用:#
作为占位符语法
请尝试使用
.to("sql:update mytable set status = 100 where id = :#${body[0][id]}")
答案 1 :(得分:0)
下面的代码也有效。
from("direct:updateSql")
.to("sql:select * from mytable limit 1")
.setHeader("id", simple("${body[0][id]}"))
.to("sql:update mytable set status_id = 100 where id = :#id")
.end();