更新MYSQL数据库中的行而不知道编写代码时哪些列?

时间:2015-02-18 17:29:05

标签: mysql dropwizard jdbi

我正在使用SQL对象API来处理我的数据库中的数据并遇到了一个恼人的问题:

当用户使用我的前端时,他们可以输入值等并从下拉菜单等中选择,然后单击“应用”以保存对数据库的所有更改,问题是我从未真正知道WHICH列将被更改在每次写作的表格内。

对表进行更新的代码(根据互联网)如下:

    @SqlUpdate("UPDATE users SET col1=val1, col2=val2 WHERE Id= :Id")
void updateStream(@BindBean User user);

但由于我永远不知道哪些字段会更新,我当然不能包含列名?

非常感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

AFAIK jdbi并不灵活。它有@Define feature但我不认为它可以解决您的问题,因为参数数量可能会有所不同。

常见的方法是更新所有字段。由于客户端向您发送包括未更改字段在内的整个User对象,因此只会影响相关列。