java - NoSuchMethodError JDBI

标签 java mysql annotations jdbi

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

void createTab() {
DBI dbi = new DBI(DBURL, DBUSER, DBPASS);

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

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

我的BindExamples界面:

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

结果:我遇到错误:

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)

有什么想法我做错了什么吗? 我正在尝试与http://jdbi.codehaus.org/five_minute_intro/中的相同

我使用:

  • JDBI 库 2.48.2 版本
  • eclipse
  • mySql

感谢您的帮助!

最佳答案

jdbi中没有@SqlSelect注解。你能说一下,你使用这个注释来自哪个库吗?我将注释更改为@SqlQuery,它工作正常。它将扫描所有方法,并根据注释分配处理程序。由于未知注释,扫描可能会失败。

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

相关文章:

java - 在巨大的字符序列中查找一组字符的索引

java - 我的应用程序启动后如何加载/初始化我的类?

java - <s :select> use map as list excluding given keys

java - 如何防止 IntelliJ 在运行测试时删除从生成源编译的类?

java - 如何在 Windows 和 Java 11 上调试 "Software caused connection abort: recv failed"?

javascript - 如果图像已存在,则更改图像名称,然后上传到数据库和目录

python - 属性错误: 'tuple' object has no attribute 'encode' python gui

mysql - 如何使用 JOIN 代替 IN 子句

java - 约束注释中的变量字段

仅 Java 注解处理