Я создаю программу JavaFX со встроенной базой данных H2, которая будет использоваться для обработки пользовательских логинов и паролей. Используя Intellij Ultimate, у меня есть база данных, которую я могу запустить с панели инструментов. Кроме того, я почти уверен, что у меня есть правильный драйвер JDBC и URL. База данных работает нормально из консоли базы данных Intellij. Ошибка возникает, когда я пытаюсь получить доступ к базе данных с помощью кода Java. Я использую класс базы данных для обработки моего соединения с базой данных.
Я получаю JdbcSQLNonTransientException
, Общая ошибка:
Исключение из-за недопустимого состояния: невозможно прочитать страницу в позиции
Причина: java.lang.IllegalStateException: Неподдерживаемый тип 17.
Строка кода, которая отображается в моем компиляторе, вызывая ошибку: Connection conn = DriverManager.getConnection(DB_URL, "sa", "");
Я пытался найти похожую проблему везде, но не могу найти связанные проблемы. Я попытался максимально упростить свой класс, чтобы изолировать проблему и просто установить связь. Я удалил свой проект и попытался начать все сначала.
Упрощенный класс DatabaseManager
, вызывающий проблему:
public class DatabaseManager {
static final String JDBC_DRIVER = "org.h2.Driver";
static final String DB_URL = "jdbc:h2:D:/trant/Documents/Java Practice/Order A Car2/res/userDatabase";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection(DB_URL, "sa", "");
Statement st = conn.createStatement();
st.executeUpdate("SELECT * FROM JOBS");
conn.close();
}
}
Я ожидаю подключения к базе данных H2 и извлечения данных из таблицы "JOBS". Код не компилируется с вышеуказанными ошибками.
edit: Если я использую версию 1.4.199
H2 вместо 1.4.200
, проблема исчезнет. Я нашел почти идентичную проблему здесь: https://github.com/h2database/h2database/issues/2078. Эта ссылка имеет ту же трассировку стека, что и моя. Мне еще предстоит решить проблему с версией 1.4.200