Jdbi - 如何在Java中绑定列表参数?
我们有一个由Jdbi()执行的SQL语句。对于绑定参数,我们使用 Jdbi 的方法:org.skife.jdbi.v2
bind
Handle handle = ...
Query<Map<String, Object>> sqlQuery = handle.createQuery(query);
sqlQuery.bind(...)
但是,我们在列表中存在问题,目前我们正在为此使用。因此,我们的查询可以如下所示:String.format
SELECT DISTINCT
tableOne.columnOne,
tableTwo.columnTwo,
tableTwo.columnThree
FROM tableOne
JOIN tableTwo
ON tableOne.columnOne = tableTwo.columnOne
WHERE tableTwo.columnTwo = :parameterOne
AND tableTwo.columnThree IN (%s)
%s
替换为,因此我们必须在java代码中生成正确的字符串。然后,在全部被替换之后,我们使用jdbi的方法替换所有其他参数( 或 )。String.format
%s
bind
:parameterOne
?
有没有办法用jdbi代替?有一个方法,但默认情况下它不处理列表/数组。我发现这篇文章解释了如何编写我们自己的工厂来绑定自定义对象,但看起来需要付出很多努力,特别是对于应该已经支持的东西。String.format
bind(String, Object)