当前位置: 首页 > 面试题库 >

如何在jDBI中进行查询?

艾自强
2023-03-14
问题内容

如何在jDBI中执行类似的操作?

@SqlQuery("select id from foo where name in <list of names here>")
List<Integer> getIds(@Bind("nameList") List<String> nameList);

表: foo(id int,name varchar)

与myBatis中的@SelectProvider相似。


问题答案:

这应该工作:

@SqlQuery("select id from foo where name in (<nameList>)")
List<Integer> getIds(@BindIn("nameList") List<String> nameList);

不要忘记用以下方法注释包含此方法的类:

@UseStringTemplate3StatementLocator

注解(因为JDBI底层使用Apache StringTemplate进行此类替换)。还要注意,使用此注释,您不能在SQL查询中使用’<’字符而不进行转义(因为它是StringTemplate使用的特殊符号)。



 类似资料:
  • 问题内容: 在Hibernate 3中,有没有办法等效于HQL中的以下MySQL限制? 如果可能的话,我不想使用setMaxResults。这肯定在较旧的Hibernate / HQL版本中是可行的,但似乎已经消失了。 问题答案: 几年前,当有人问到为什么它在Hibernate 2中有效但在Hibernate 3中无效时,此消息发布在Hibernate论坛上: 在HQL中,从不支持Limit 子句

  • 我是solr的初学者,我发现查询 因此,如何使这个查询工作我的模式是

  • 我在这里做错了什么?

  • 当我尝试使用上述方法插入多行时,即使在使用@SqlBatch之后,它也会进行多次插入查询。Sql日志如下 如何单次推送插入所有记录?

  • 问题内容: 在Hibernate 3中,有没有办法等效于以下HQL中的MySQL限制? 如果可能,我不想使用setMaxResults。这肯定在较旧的Hibernate / HQL版本中是可行的,但似乎已经消失了。 问题答案: 几年前,当有人问到为什么它在Hibernate 2中有效但在Hibernate 3中无效时,此消息发布在Hibernate论坛上: 在HQL中, 从不 支持Limit 子句

  • 问题内容: 此子查询可在SQL Server中使用: 如何在SQL Compact中制作? 谢谢! 问题答案: 试试这个: [编辑:] 我最初像Tomalak一样拥有一个INNER JOIN,但是我意识到这将排除没有事件的用户,而不是向他们显示0。甚至可能是您想要的,但与您的原始内容不符。