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");
}
我在这里做错了什么?
看起来您在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日志如下 如何单次推送插入所有记录?