当前位置: 首页 > 知识库问答 >
问题:

JDBI对象查询

冯胤
2023-03-14
public interface PersonDAO {

@SqlQuery("insert into person(id,first_name,last_name,position) values(:id,:firstName,:lastName,:position)")
void insertPerson(@Bind("id") Integer id,
                  @Bind("firstName") String firstName,
                  @Bind("lastName") String lastName,
                  @Bind("position") String position);
}
@Test 
public void testInsertPerson() {
    PersonDAO personDao = dao.getRegHandle().attach(PersonDAO.class);
    personDao.insertPerson(888888,"Tom", "Ford", "Manager");
}

我在这里做错了什么?

共有1个答案

令狐凌
2023-03-14

看起来您在insert语句上有SQLQuery批注,而不是SQLUPDATE批注。看看JDBI docs:Link中的示例

如下所示更改注释:

@SqlUpdate("insert into person(id,first_name,last_name,position) values(:id,:firstName,:lastName,:position)")

应该去掉那个例外。

 类似资料:
  • 问题内容: 如何在JDBI中使用SQL对象查询进行排序? 我想做类似的事情: 要么 问题答案: 我最近一直在探索与JDBI捆绑在一起的DropWizard,并很快遇到了同样的问题。不幸的是,JDBI的文档乏善可陈(JavaDoc和它的git存储库中的一些示例单元测试并没有单独解决),这令人失望。 这是我根据示例DAO在JDBI的Sql Object API中实现动态排序的结果: @ UseStri

  • 我在Dropwizard中使用JDBI,但在流畅的查询方面遇到了问题。我有一个apiendpoint,如下所示: 我试图避免编写以下3个查询: 这也意味着,我的方法get帐户实现有3个如果检查…昵称和没有电子邮件,电子邮件和没有昵称,电子邮件和昵称,以确定要运行3个查询中的哪一个。如果我要添加另一个查找参数(例如,帐户ID),这意味着我现在需要6个查询(每种可能性1个)和6个if语句来确定要运行哪

  • 非常感谢所有的帮助,  · ·提尔曼

  • jDBI 提供一个 Java 简单操作接口, 它不是一个抽象层而是一个类库是的公共的操作更简单、还有能力去做一些更复杂的操作。 JDBI 是 Java 的 SQL 便捷操作库,尝试使用集合,beans 等等来暴露 Java 中的关系型数据库,可以维护相同级别的 JDBC。提供两个不同样式的 APIs:fluent 和 sql object。 Fluent API // using in-memor

  • 问题内容: 如何在jDBI中执行类似的操作? 表: foo(id int,name varchar) 与myBatis中的@SelectProvider相似。 问题答案: 这应该工作: 不要忘记用以下方法注释包含此方法的类: 注解(因为JDBI底层使用Apache StringTemplate进行此类替换)。还要注意,使用此注释,您不能在SQL查询中使用’<’字符而不进行转义(因为它是String

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