ndsfd ddsfd
ndsfd ddsfd

Reputation: 235

Not able to connect with Sybase database

In java I am trying to connect with Sybase database through java program as shown below

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);

But i am getting the below exception

Driver Loaded

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)

I have done analysis in google what i have to came up to know jconnn.jar is missing as the issue is the method isValid(I)Z is not there in jconn2.jar is not there please advise how to overcome from this error please.

Upvotes: 1

Views: 3205

Answers (2)

Akash Yadav
Akash Yadav

Reputation: 2421

AbstractMethodError is thrown when the implementation class doesn't comply to the signature defined in the abstract class. Use a compatible version of the implementation or alternatively avoid the methods that conflict.

Ideally latest version of drivers must be having matching implementations or you will have to contact sybase to fix that.

Upvotes: 0

Mark Rotteveel
Mark Rotteveel

Reputation: 109253

The driver you are using is - based on the class name in the stacktrace - a JDBC 2 driver. The isValid method was added in Java 6 (or: JDBC 4), so you can't use it with a driver that doesn't implement it.

You either need to upgrade to a newer driver: contact Sybase for that, or simply not call the isValid method. In the code you show there is no reason to call it: you just created the connection, of course it is valid. This method is intended to check the validity of long-living connections (eg in the context of a connection pool).

Upvotes: 2

Related Questions