我正在尝试使用这种方法在我的班级中创建一个表格 :
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版本
- 蚀
- mysql
谢谢你的帮助!