让JDBI映射自定义查询的结果

时间:2016-03-01 12:26:04

标签: java jdbi

我想做一个复杂的查询,让JDBI处理结果映射。通常情况下,我会做这样的事情:

interface MyDao {
  @MapResultAsBean @SqlQuery("hardcoded query with :arg here")
  ResultDto query(@Bind("arg") String arg);
}
ResultDto result = dbi.open(MyDao.class).query(arg);

由于查询是在运行时生成的,我不能这样做,但我仍然想使用结果集映射功能。我尝试过使用Handle界面:

String query = generateCustomQuery();
ResultDto result = dbi.open().createQuery(query).mapTo(ResultDto.class).first();

但我没有找到通过arg的方法。我可以将其串联到生成的查询中,但我宁愿传递它,就像使用PreparedStatement一样。

1 个答案:

答案 0 :(得分:2)

我相信您想要使用bind

dbi.open().createQuery(query).mapTo(ResultDto.class).bind(":arg", "value").first();