Sybase jtds驱动程序试图连接到sql server

时间:2013-06-13 16:45:28

标签: sql-server database-connection sybase

我有一个场景,用户向我提供他想要连接的数据库的主机名,端口和凭据。我不知道数据库的味道。所以我尝试做的是尝试连接到每种数据库类型,看看连接是否成功。 我将sqljdbc4.jar用于sql server,将jtds-1.2.7.jar用于sybase连接。我使用他们各自的驱动程序URL和类名。 当我尝试连接到sybase数据库时,下面的代码首先尝试连接到sql server然后再连接到sybase。但是,当它尝试sql server连接时,我在连接失败之前反复看到以下消息。如何摆脱此错误消息? 当我对oracle驱动程序的详细信息使用相同的主机名,端口和凭据时 - 我立即看到错误。但是对于sql server详细信息,它会反复尝试多次。这导致了时滞,所以我想避免它并立即看到错误。

com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
WARNING: ConnectionID:1 Prelogin error: host sybasehost port 4100 Unexpected response type:0

代码:

try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        url = "jdbc:sqlserver://sybasehost:4100;databaseName=dbname";
        System.out.println(url);
        java.sql.Connection conn = DriverManager.getConnection(url, "username", "password");
        System.out.println("Connection successful!");
    }
    catch(SQLException se)
    {
        se.printStackTrace();
        System.out.println("Connection unsuccessful");
    }
    catch(ClassNotFoundException cnfe)
    {
        cnfe.printStackTrace();
        System.out.println("Class not found");
    }
    //then try sybase db connection
    try{
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        url = "jdbc:jtds:sybase://sybasehost:4100/dbname";
        System.out.println(url);
        java.sql.Connection conn = DriverManager.getConnection(url, "username", "password");
        System.out.println("Connection successful!");
    }
    catch(SQLException se)
    {
        se.printStackTrace();
        System.out.println("Connection unsuccessful");
    }
    catch(ClassNotFoundException cnfe)
    {
        cnfe.printStackTrace();
        System.out.println("Class not found");
    }

0 个答案:

没有答案