Проблема с подключением Java к базе данных sybase

Я хочу создать соединение с Sybase DB в Java-приложении. Я добавил jconn4.jar в свой проект, но когда я подключаюсь к БД в коде, у меня есть исключение ClassNotFoundException: com.sybase.jdbc4.jdbc.SybDriver, Мое соединение:

SqlConnect() {
    try {
        DriverManager.registerDriver(new com.sybase.jdbc4.jdbc.SybDriver());
    } catch (SQLException e) {
        System.err.println("SQL exception  " + e.getMessage());
    }
}

А также

public void connect() {
        try {
            connection = DriverManager.getConnection("jdbc:sybase:Tds:localhost:5000", "DBA", "sql");
            connection.setAutoCommit(false);
        } catch (SQLException e) {

        }
    }

Я хочу подключиться к демонстрационной базе данных PowerBuilder с параметрами:

DSN=EAS Demo DB V125;UID=dba;PWD=sql

Что я делаю не так?ДОБАВЛЕНО Кроме того, когда я пытаюсь создать соединение с базой данных через рабочий плагин базы данных intelij, у меня также появляется та же ошибка.

2 ответа

Решение

Итак, другой драйвер типа jdbc решил мою проблему - я подключил драйвер sajdbcX и изменил строку подключения:

connection = DriverManager.getConnection("jdbc:sqlanywhere:uid=DBA;pwd=sql");

Итак, еще раз спасибо Mark Rotteveel за совет - я удалил код регистрации драйвера как redddrant. И спасибо всем за идеи.

Убедитесь, что у вас есть уважаемые банки, включенные в ваш путь к классам. Следующие работы для меня:

использование Class.forname загрузить драйверы

Рекомендуемый подход:

Class.forName("sybase.jdbc.sqlanywhere.IDriver")
con = DriverManager.getConnection("jdbc:sqlanywhere:uid=DBA;pwd=sql");

Другой способ обойти:

DriverManager.registerDriver((Driver) Class.forName("sybase.jdbc.sqlanywhere.IDriver").newInstance());
con = DriverManager.getConnection("jdbc:sqlanywhere:uid=DBA;pwd=sql");

Следующая ссылка поможет вам в установке драйверов: Как подключить базу данных Sybase с помощью кода Java в NetBeans?

Другие вопросы по тегам