关于java.lang.AbstractMethodError

02-10-26 cathy

我在编译时,取得connection之后,Statement需要能执行分页操作。所以使用Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
抛出java.lang.AbstractMethodError
请教各位,是什么原因啊?

1
fuck
2002-10-27 21:30

这是因为你的JDBC版本不对,没有实现一些可选方法.比如
java.sql.ResultSet接口中有last()方法,而MS的JDBC-ODBC就没有实现,调用时在子类中找不到的方法它肯定会向上级一级一级找,真到上升到Object也没有这个方法就会说说没有这个方法,而在java.sql.ResultSet接口中定义了这样一个抽象方法,但在实现类com.microsoft.jdbcObdc.ResultSet中没有实现,这时其实是调用了父类的抽象方法,当然会抛出你这个异常.

cathy
2002-10-28 09:54

谢谢,我现在用的是Mysql,以前用oracle的时候是都可以实现的。但就不知道mysql多少版本的jdbc是支持的

fuck
2002-10-28 11:27

mysql数据库本身没有关系,你去它的主页上下载JDBC,有1.0和2.0的区别,最好下载MM的,那个特别好用,还有源码.可是自己修改.比如字符集乱码我就改了ResultSet的getString()方法,在最后return new String(byte[],"GBK");所有有源码很方便.