首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBI对象查询

JDBI对象查询
EN

Stack Overflow用户
提问于 2014-02-17 04:22:19
回答 1查看 2.6K关注 0票数 6

我以前使用过JDBI来处理Java持久化的东西,但它一直是fluent API,而不是对象API。现在尝试对象API。

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

代码语言:javascript
复制
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中测试查询,它运行良好,但在单元测试中运行:

代码语言:javascript
复制
@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被注释,好像它应该返回一个值,但是这个方法是无效的。

我在这里做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-17 04:39:02

看起来您在insert语句上得到了SqlQuery注释,而不是SqlUpdate注释。查看JDBI:Link中的示例

更改注释如下:

代码语言:javascript
复制
@SqlUpdate("insert into person(id,first_name,last_name,position) values(:id,:firstName,:lastName,:position)")

应该处理掉那个例外。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21820695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档