MySQL查询jdbi中的动态绑定选择值

时间:2016-03-15 07:19:46

标签: java mysql dropwizard dynamicquery jdbi

如何在Jbdi中编写动态SQL查询,就像在我的项目中一样,客户会询问一些详细信息,如first name,last name,mobile。所以我会将这些值读入字符串,我的想法是直接将其附加到SQL查询中,如

select first name,last name,mobile from customer

另一位用户只询问first name,然后我的查询会改变

select first name from customer where customer Id=12345

1 个答案:

答案 0 :(得分:0)

我正在使用JDBI在Dropwizard应用程序中为动态生成的搜索条件字符串做类似的事情。

@UseStringTemplate3StatementLocator
public interface ThingieDao {
    @SqlQuery
    @MapResultAsBean
    Iterator<Thingie> search(@Define("criteria") String criteria);
}

定义的字符串&#34;标准&#34;然后可以在SQL模板中使用:

group ThingieDao;
search(criteria) ::= <<
  SELECT * FROM table_name WHERE <criteria>
>>

您可以使用相同的技术在SQL中插入任何字符串,即您的情况下的SELECT列名称。

界面中的变量名无关紧要,重要的是@Define注释字符串。假设Dropwizard没有添加任何魔法,它通常不会,我想这应该可以使用简单的JDBI。