在java中我试图通过java程序连接Sybase数据库,如下所示
public static void connect() {
SybDriver sybDriver = null;
Connection conn;
try {
sybDriver = (SybDriver) Class.forName(
// "com.sybase.jdbc3.jdbc.SybDriver").newInstance();
"com.sybase.jdbc2.jdbc.SybDriver").newInstance();
System.out.println("Driver Loaded");
conn = DriverManager.getConnection(url, username, password);
boolean isTrue = conn.isValid(3);
System.out.println(isTrue);
但我得到以下异常
已加载驱动程序
Exception in thread "main" java.lang.AbstractMethodError: com.sybase.jdbc2.jdbc.SybConnection.isValid(I)Z
at connectionTry.connect(connectionTry.java:97)
at connectionTry.main(connectionTry.java:23)
我已经在谷歌做了分析我必须知道jconnn.jar缺失因为问题是方法isValid(I)Z不存在于jconn2.jar不存在请告知如何克服这个问题错误请。
答案 0 :(得分:2)
您正在使用的驱动程序是 - 基于堆栈跟踪中的类名 - JDBC 2驱动程序。在Java 6(或:JDBC 4)中添加了isValid
方法,因此您无法将其与未实现它的驱动程序一起使用。
您需要升级到更新的驱动程序:请与Sybase联系,或者不要调用isValid
方法。在您显示的代码中没有理由调用它:您刚刚创建了连接,当然它是有效的。此方法旨在检查长生命连接的有效性(例如,在连接池的上下文中)。
答案 1 :(得分:0)
当实现类不符合抽象类中定义的签名时,抛出AbstractMethodError。使用兼容版本的实现,或者避免冲突的方法。
理想情况下,最新版本的驱动程序必须具有匹配的实现,否则您必须联系sybase来解决此问题。