首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoSuchMethodError JDBI

NoSuchMethodError JDBI
EN

Stack Overflow用户
提问于 2014-11-25 15:37:43
回答 2查看 793关注 0票数 0

我正在尝试使用这样的方法在我们的类中创建一个表:

代码语言:javascript
复制
void createTab() {
DBI dbi = new DBI(DBURL, DBUSER, DBPASS);

BindExamples dao = dbi.open(BindExamples.class);

dao.createSomethingTable();
    dao.close();
}

我的BindExamples接口:

代码语言:javascript
复制
public interface BindExamples

{
@SqlUpdate("insert into something (id, name) values (:id, :name)")
void insert(@Bind("id") int id, @Bind("name") String name);

@SqlUpdate("delete from something where name = :it")
void deleteByName(@Bind("name") String name);

@SqlSelect("select text from articles where id = :id")
String selectText(@Bind("id") int id);

@SqlUpdate("create table something (id int primary key, name varchar(100))")
  void createSomethingTable();

void close();
}

结果:我有一个错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoSuchMethodError:java.lang.Object.createSomethingTable()V
at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$7c60a575.CGLIB$createSomethingTable$8(<generated>)
at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$7c60a575$$FastClassByCGLIB$$c61ecaca.invoke(<generated>)
at org.skife.jdbi.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.skife.jdbi.v2.sqlobject.PassThroughHandler.invoke(PassThroughHandler.java:21)
    at org.skife.jdbi.v2.sqlobject.SqlObject.invoke(SqlObject.java:147)
    at org.skife.jdbi.v2.sqlobject.SqlObject$1.intercept(SqlObject.java:60)
    at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$7c60a575.createSomethingTable(<generated>)
    at DBAccessJDBC.saveObjectAPI(DBAccessJDBC.java:58)
    at MainMain.main(MainMain.java:7)

我有什么错吗?我想和intro/一样

我用:

  • 2.48.2版本的JDBI库
  • 月食
  • mySql

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2014-12-27 21:11:23

在jdbi中没有注释@SqlSelect。您可以说,您使用的是哪个库的注释。我将注释更改为@SqlQuery,它运行良好。它将扫描所有方法,并根据注释分配处理程序。扫描可能因为未知的注释而失败。

票数 1
EN

Stack Overflow用户

发布于 2014-12-14 03:48:26

JDBI正在扫描您的接口注释。使用@SqlQuery注释。

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

https://stackoverflow.com/questions/27130812

复制
相关文章

相似问题

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