Получение исключения - пользователю не хватает привилегии или объект не найден в базе данных HSQL с java - PullRequest
0 голосов
/ 20 мая 2019

Я создал базу данных, используя hsql, а также добавил одну таблицу, используя интерфейс пользовательского интерфейса swingmanager в java и hsql.

Точка 1:

Я создал базу данных, используя следующие данные

Type : HSQL Database Engine Standalone
Driver: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:file:mydb
UserName: SA
Password: SA

пункт 2: Внесли некоторые данные из UI hsql.

Точка 3: соединение hsql работает

Пункт 4: Попытка чтения данных с использованием кода Java, но получение исключения, говоря - пользователю не хватает прав или объект не найден ошибка

  1. Аналогичная проблема - https://sourceforge.net/p/hsqldb/mailman/message/28944633/
  2. Пытался указать заглавную "SA" при подключении к БД, а также в коде
  3. Поскольку hsql чувствителен к регистру, попробуйте выполнить запрос как ВЫБЕРИТЕ ID ИЗ ДОМЕНА или же ВЫБЕРИТЕ ID ИЗ "ДОМЕНА"
  4. Перейдите по этому пути -C: \ hsqldb-2.4.1 \ hsqldb \ data убедитесь, что у вас нет нескольких копий этих файлов: mydb.log, mydb.lck, mydb.properties и т. д. в вашем рабочем пространстве
  5. пробовал этот запрос в одинарных кавычках 'ВЫБЕРИТЕ ID ИЗ ДОМЕНА'
  6. У этой ссылки есть еще одно решение - Пользователю HSQLDB не хватает привилегии или объект не найден при создании операторов выбора с
  7. Вы можете попробовать создать другую таблицу с уникальным именем вместо домена

    Resultset rs = stmt.executequery («Выбрать * из testdemo»);

В этой строке выдается исключение, говорящее о том, что -user не имеет привилегии или объект не найден

Фактический результат:

пользователю не хватает прав или объект не найден ошибка

Ожидаемый результат: он должен прочитать данные из таблицы

1 Ответ

0 голосов
/ 20 мая 2019

Одной из наиболее распространенных проблем при работе с HSQLDB является отсутствующее / неправильное имя псевдонима базы данных в строке подключения. при запуске сервера HSQLDB с помощью следующей команды

@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:sampledb --db

требуемый URL-адрес соединения: jdbc: hsqldb: hsql: // localhost / sdb . Убедитесь, что ваша новая таблица находится в схеме PUBLIC, потому что по умолчанию именно там драйвер будет искать эту таблицу. Из того, что вы сказали, если вы можете запросить таблицу с помощью инструмента пользовательского интерфейса, то это, скорее всего, проблема с вашей строкой соединения.

Если вы используете режим запуска хранилища файлов, вы можете подключиться из установки, например C: \ servers \ DB \ hsqldb240 \ bin \ runManagerSwing.bat (через менеджер пользовательского интерфейса) с использованием jdbc: hsqldb: file: testdb; ifexists = true; но для подключения с использованием Java вы должны указать расположение filedb в строке подключения, например, jdbc: hsqldb: file: C: \ servers \ DB \ hsqldb240 \ testdb; ifexists = true;

...