Ошибка таблицы «myTable» при обращении к базе данных H2 - PullRequest
0 голосов
/ 10 мая 2019

Я использую базу данных H2 в памяти в своем проекте Grails.Мое приложение работает правильно с базой данных H2.Я хочу соединиться с базой данных H2, используя groovy, чтобы получить данные из базы данных.

import groovy.sql.Sql
    import java.sql.Driver

    class psqlh2 {
        static void main(String[] args) {
            def driver = Class.forName('org.h2.Driver').newInstance() as Driver
            def props = new Properties()
            props.setProperty("user", "sa")
            props.setProperty("password", "")

            def conn = driver.connect("jdbc:h2:mem:~/databaseName;DB_CLOSE_DELAY=-1",props)
            def sql = new Sql(conn)

            def query = "SELECT * FROM company"
            try {
                sql.eachRow(query) { row ->
                    println(row)
                }
            } finally {
                sql.close()
                conn.close()
            }
    }

ПРЕДУПРЕЖДЕНИЕ: Не удалось выполнить: SELECT * FROM company, поскольку: таблица "COMPANY" не найдена;Оператор SQL: SELECT * FROM company [42102-199] Исключение в потоке "main" org.h2.jdbc.JdbcSQLSyntaxErrorException: таблица "COMPANY" не найдена;

Пожалуйста, помогите мне.

1 Ответ

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

Заменить mem на файл

   def driver = Class.forName('org.h2.Driver').newInstance() as Driver
        def props = new Properties()
        props.setProperty("user", username)
        props.setProperty("password", password)
        return driver.connect("jdbc:h2:file:${absolutePath};DB_CLOSE_DELAY=-1;IFEXISTS=true", props)
  • Также убедитесь, что используете ту же версию H2 jar, которую использует h2-сервер.
...