template update一直报错,操作资势哪不对吗

 int update = Db.template("task.deleteTask", Kv.by("id", id)).update();
//        int update = Db.update("update t_task set state = 0 where id = ?", id);

旧的方法执行正常,使用template一直报错,下面是sql模板里的

update t_task set state = 0 where id = concat(''',#(id),''')

是有哪里不对吗?

 打印出来

Sql:         update t_task set state = 0 where id = concat(''',686f284dd8ea4da9878a1a3ea0cd0789,''')

评论区

zhangtianxiao

2019-07-13 13:13

686f缺少字符串包裹

杜福忠

2019-07-13 14:53

正确优雅姿势 :
update t_task set state = 0 where id = #para(id)
#para 生成的占位符 ? , 性能比 函数concat要强的不是一星半点

杜福忠

2019-07-13 15:01

我觉得像比较简单的 SQL 没有必要用模版装起来... 比如可以直接用:
Db.update("t_task", new Record().set("id", "xxx").set("state", 0)); 简洁方便易读...

lyq027

2019-07-13 15:05

@杜福忠 谢谢,是这个原因