gpt4 book ai didi

java - JDBI 对象查询

转载 作者:可可西里 更新时间:2023-11-01 07:02:04 29 4
gpt4 key购买 nike

我之前曾将 JDBI 用于 Java 持久性方面,但它始终是流畅的 API 而不是对象 API。立即试用对象 API。

我有一个非常简单的 DAO 对象:

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);
}

在 mysql 中测试查询,它工作正常,但在单元测试中运行它:

@Test 
public void testInsertPerson() {
PersonDAO personDao = dao.getRegHandle().attach(PersonDAO.class);
personDao.insertPerson(888888,"Tom", "Ford", "Manager");
}

我得到一个异常(exception):

java.lang.IllegalStateException: Method com.hrweb.dao.PersonDAO#insertPerson is annotated as if it should return a value, but the method is void.

我在这里做错了什么?

最佳答案

看起来您的插入语句中有 SqlQuery 注释,而不是 SqlUpdate 注释。查看 JDBI 文档中的示例:Link

像这样更改注释:

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

应该摆脱那个异常。

关于java - JDBI 对象查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21820695/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com