小编zen*_*ril的帖子

resultset.getObject上的AbstractMethodError

因此,我正在构建一个minecraft插件,该插件的一部分从mysql抓取一堆数据块,并在服务器启动时将其加载到缓存中。我有一些代码可以在Eclipse测试用例中正常运行。但是,当我在本地的minecraft服务器中加载插件时,出现了异常。

    java.lang.AbstractMethodError:方法com / mysql / jdbc / JDBC4ResultSet.getObject(Ljava / lang / String; Ljava / lang / Class;)Ljava / lang / Object; 是抽象的
            在com.mysql.jdbc.JDBC4ResultSet.getObject(JDBC4ResultSet.java)处〜[spigot-1.8.8.jar:git-Spigot-db6de12-d3e0b6f]
            在fws.plugins.trigger.database.ModelDB.loadCollection(ModelDB.java:335)〜[?:?]
            在fws.plugins.trigger.database.ModelDB.all(ModelDB.java:295)〜[?:?]
等等...



抛出异常的代码。

rs.getObject( field.getName(), p.fieldType());
Run Code Online (Sandbox Code Playgroud)

rsjava.sql.ResultSet从执行查询返回的实例。
p.fieldType()只是返回一个 Class<?>



片段稍大...并不是真的可以向您显示其他内容。

if (field.isAnnotationPresent(Persist.class)) {
    try {
        Persist p = field.getAnnotation(Persist.class);
        Object o = rs.getObject( field.getName(), p.fieldType());
        field.set(m,p.fieldType().cast(o));

    } catch (Exception e) {
        // TODO Auto-generated catch block 
        e.printStackTrace();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我看过网上有人说要修复,我需要包括ojdbc6.jar并将其用作我的连接驱动程序。
我将文件添加到文件夹lib下的项目结构中,将其包含到我的项目中,然后将其添加到我的构建文件中。 http://i.imgur.com/7TXLbjj.png 并将连接驱动程序更改为oracle.jdbc.OracleDriver

但是即时通讯收到相同的问题,似乎不是一个解决办法。虽然有机会我做错了。

谁能帮助我,提供任何见解等?

编辑**
从命令行

$ java -version
java …
Run Code Online (Sandbox Code Playgroud)

java mysql eclipse jdbc minecraft

5
推荐指数
1
解决办法
4184
查看次数

标签 统计

eclipse ×1

java ×1

jdbc ×1

minecraft ×1

mysql ×1