我一直在将现有项目从 jdbc 迁移到 jdbi,并且我一直在充分利用 jdbi 漂亮的 SQL 对象 API。我们正在使用 mysql。
虽然 SQL 对象 API 可以构造在编译时已知的已处理查询,但我找不到在运行时生成查询的方法。
具体来说,我希望能够做这样的事情:
@SqlUpdate(
"UPDATE record SET "+
@IfNotZero("foo") "foo=:foo" +
@IfNotNull("bar") "bar=:bar" +
@IfNotNull("baz") "baz=:baz" +
"WHERE id=:id"
)
public abstract int updateRecord(
@Bind("id") int id,
@Bind("foo") int foo,
@Bind("bar") String bar,
@Bind("baz") String baz
);