#java #netbeans #hsqldb
#java #netbeans #hsqldb
Вопрос:
У меня есть небольшая программа HSQLDB для тестирования битов SQL. Я получаю эту ошибку:
A pre-version 2.0 client attempted to connect. We rejected them.
Тем не менее, единственным драйвером JDBC, который у меня есть, является HSQLDB v2.3 из последней загрузки:
hsqldb/lib/hsqldb.jar
Я использую эту строку для загрузки драйвера JDBC:
Class.forName("org.hsqldb.jdbcDriver");
И строка подключения:
connectionStr = "jdbc:hsqldb:hsql://localhost/tmp_db";
user=sa, password=
Значения по умолчанию. Похоже, что мой сервер HSQLDB запустился нормально с базой данных следующим образом:
server.dbname.0=**tmp_db**
server.database.0=file:r:/.data/hsqldb/**tmp_db/tmp**
[Server@372f7a8d]: Database [index=2, id=2, db=file:r:/.data/hsqldb/**tmp_db/tmp**, alias=tmp_db] opened sucessfully in 26 ms.
Я использую Netbeans, и когда я подключаюсь через вкладку Services, база данных, похоже, открывается нормально. Разве Netbeans не будет использовать тот же драйвер? Могу ли я это проверить?
Большой вопрос в том, как нам указать клиентское соединение версии 2, драйвер или параметры? Должен ли я получить другой JAR для правильного драйвера?
И последнее. Тестовая программа работает нормально, если я использую соединение на основе файлов, например:
jdbc:hsqldb:db_file
К сожалению, строка подключения к серверу, похоже, работала ранее сегодня. По крайней мере, я мог удалять / создавать таблицы во время внесения изменений.
Ответ №1:
Вы должны использовать одни и те же jars (или, по крайней мере, последние, совместимые версии) на клиенте и сервере.
Ошибка показывает, что вы используете jar версии 2.x на сервере, но jar версии 1.8 на клиенте. Проверьте NetBeans, чтобы узнать, имеет ли какое-либо загруженное вами расширение старый драйвер. Вы можете использовать правильный jar в своем проекте NetBeans, добавив его в качестве библиотеки.
Если ошибка не из NetBeans, проверьте путь к классу вашего приложения и убедитесь, что у вас есть последняя версия jar.