我以前使用过JDBI来处理Java持久化的东西,但它一直是fluent 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");
}我有个例外:
java.lang.IllegalStateException:方法com.hrweb.dao.PersonDAO#insertPerson被注释,好像它应该返回一个值,但是这个方法是无效的。
我在这里做错什么了?
发布于 2014-02-17 04:39:02
看起来您在insert语句上得到了SqlQuery注释,而不是SqlUpdate注释。查看JDBI:Link中的示例
更改注释如下:
@SqlUpdate("insert into person(id,first_name,last_name,position) values(:id,:firstName,:lastName,:position)")应该处理掉那个例外。
https://stackoverflow.com/questions/21820695
复制相似问题