无法与Sybase数据库连接

时间:2015-04-29 08:03:46

标签: java database jdbc sybase

在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不存在请告知如何克服这个问题错误请。

2 个答案:

答案 0 :(得分:2)

您正在使用的驱动程序是 - 基于堆栈跟踪中的类名 - JDBC 2驱动程序。在Java 6(或:JDBC 4)中添加了isValid方法,因此您无法将其与未实现它的驱动程序一起使用。

您需要升级到更新的驱动程序:请与Sybase联系,或者不要调用isValid方法。在您显示的代码中没有理由调用它:您刚刚创建了连接,当然它是有效的。此方法旨在检查长生命连接的有效性(例如,在连接池的上下文中)。

答案 1 :(得分:0)

当实现类不符合抽象类中定义的签名时,抛出AbstractMethodError。使用兼容版本的实现,或者避免冲突的方法。

理想情况下,最新版本的驱动程序必须具有匹配的实现,否则您必须联系sybase来解决此问题。