Подтвердить что ты не робот

Как увидеть все таблицы в моей базе данных h2 на localhost: 8082?

Я использую JDBC и создал базу данных h2, называемую usaDB, из sql script. Затем я заполнил все таблицы с помощью jdbc.

Проблема в том, что после подключения к usaDB на localhost: 8082 я не вижу слева мои таблицы. Существует только база данных INFORMATION_SCHEMA и rootUser, которые я указал на создание usaDB.

Как просмотреть содержимое таблиц в моей базе данных h2?

Я попробовал запрос SELECT * FROM INFORMATION_SCHEMA.TABLES.

Но он вернул много имен таблиц, кроме тех, что я создал. Мой снимок:

введите описание изображения здесь

4b9b3361

Ответ 1

У меня была такая же проблема, и ответ кажется действительно глупым: когда вы вводите имя своей базы данных, вы не должны добавлять суффикс ".h2.db", например, если у вас есть db file " D:\somebase.h2.db" ваша строка подключения должна выглядеть как " jdbc: h2: файл:/D:/somebase". Другим способом jdbc создает новый пустой файл базы данных с именем " somebase.h2.db.h2.db", и вы видите, что видите: только системные таблицы.

Ответ 2

Вы можете использовать команду SHOW:

grammar

С помощью этой команды вы можете отобразить схемы, таблицы или столбцы таблицы. например:.

SHOW TABLES

Ответ 3

Эта проблема заставила меня покрутить, и помимо этой страницы я прочитал много (многих!) других, пока не решил. Мой пример использования должен был увидеть, как проект SpringBatch, созданный в STS с использованием:: Spring Boot:: (v1.3.1.RELEASE), будет вести себя с базой данных H2; чтобы сделать последнее, мне нужно было иметь возможность запускать консоль H2, а также запрашивать результаты DB пакетного запуска.

Вот что я сделал и узнал:

  • Создал веб-проект в STS, используя Spring Boot: введите описание изображения здесь

    • В pom.xml добавлено следующее: введите описание изображения здесь
    • В конфигурационный файл Spring добавлен следующий файл: введите описание изображения здесь Это устраняет недостатки веб-проекта в STS. Если вы запустите проект сейчас, вы можете получить доступ к консоли H2 следующим образом: http://localhost:8080/console введите описание изображения здесь
  • Теперь создайте проект SpringBatch в STS следующим образом (альтернативный метод создает другой шаблон, отсутствующий в большинстве классов для сохраняющихся данных. Этот метод создает 2 проекта: один полный, а другой - начальный. В следующих.): введите описание изображения здесь

    • Проект SpringBatch, созданный с использованием STS, использует базу данных H2 в памяти, которая ЗАКРЫВАЕТСЯ после завершения работы приложения; после его запуска вы можете увидеть это в выводе журнала.
    • Итак, нам нужно создать новый DataSource, который переопределяет значение по умолчанию, которое поставляется с проектом (если вам интересно, просто посмотрите на сообщения журнала, и вы увидите, что он использует источник данных по умолчанию... этот создано: o.s.j.d.e. EmbeddedDatabaseFactory со следующими параметрами:
      Запуск встроенной базы данных: URL= 'jdbc: hsqldb: mem: testdb', имя пользователя= 'sa')
    • Итак, он запускается в памяти, а затем закрывает его. У вас нет шансов увидеть данные с помощью консоли H2; он пришел и ушел.
    • Итак, создайте DataSource следующим образом: введите описание изображения здесь
    • Конечно, вы можете использовать файл свойств для сопоставления параметров и профилей для разных экземпляров DataSource... но я отвлекаюсь.
    • Теперь убедитесь, что вы установили бит, на который указывает красная стрелка на изображении, в место на вашем компьютере, где файл может быть сохранен.
    • Запуск SpringBatch (Complete project) теперь должен иметь файл db в этом месте после его запуска (сохраняющиеся данные Person)
    • Запустите веб-проект, настроенный ранее на этих шагах, и вы: =) увидите свои данные и все данные пакетного задания и шага (et voila!): введите описание изображения здесь Болезненный, но полезный. Надеюсь, это поможет вам на самом деле BOOTSTRAP: =)

Ответ 4

Я точно столкнулся с этой проблемой.

Из того, что вы описали, я полагаю, что вы подключаете свой jdbc к "реальному" h2-серверу, но вы подключаетесь к веб-приложению к базе данных по неправильному режиму (режим встроенной памяти, aka h2mem). Это означает, что h2 создаст новую базу данных в памяти вместо использования вашей истинной базы данных, хранящейся в другом месте.

Пожалуйста, убедитесь, что при подключении к этой базе данных вы используете режим Общий H2 (Сервер), NOTGeneric H2 (Embedded). Вы можете обратиться к рисунку ниже.

enter image description here

Ответ 5

Это старый вопрос, но я столкнулся с той же проблемой. В конце концов я узнал, что по умолчанию JDBC-URL указывает на тестовый сервер, а не на мое приложение. После исправления я мог получить доступ к правильной БД.

Я попробовал как с Generic H2 (Embedded), так и с опциями Generic H2 (Server), оба работали до тех пор, пока JDBC URL: предоставлен правильно.

введите описание изображения здесь

Ответ 6

Версия файла jar и установленной базы данных h2 должна быть такой же.

Ответ 7

В моем случае проблема была вызвана тем, что я не задал имя пользователя h2, пароль в java. К сожалению, Spring не отображал мне никаких ошибок, поэтому было нелегко понять. Добавление этих строк в метод dataSource помогло мне устранить проблему:

dataSource.setUsername("sa");
dataSource.setPassword("");

Кроме того, я должен был указать схему при создании таблиц в schema.sql

Ответ 8

Выбор общего H2 (сервера) для меня. Мы искушаем использовать Default Generic H2 (Embedded), который является неправильным.

Ответ 9

Если в случае, если вы создали и заполнили таблицу базы данных H2 с использованием зависимости maven при весенней загрузке, измените URL JDBC на jdbc:h2:mem:testdb при подключении к H2 с помощью веб-консоли.