10.02.2010
Последняя редакция от 13.05.2026
Иванов Аркадий

 

   

     Также, как и Apache Derby, H2 - это SQL-база на чистой Java, легко встраиваемая в приложение. В описании предполагаю, что используется сервер приложений Tomcat.

 

  1. Готовую систему, описания и исходники следует брать на официальном сайте: http://h2database.com
  2. Из zip-архива вытаскиваю файл h2-1.3.150.jar (или уже более свежую версию) и укладываю в каталог ./lib сервера приложений.
  3. В Java-программе класс драйвера называется:
    String driver = "org.h2.Driver"

    URL к базе testbase в Java-программе выглядит так:
    String connectionURL = "jdbc:h2:file:path-to-db_file;AUTO_SERVER=TRUE";

    Если файла базы ещё нет, он будет создан.

     
  4. H2 обладает удобной встроенной консолью для управления базой,  доступ к которой можно получить с любого браузера.
    Для запуска консоли в браузере:

    java -jar h2-1.3.150.jar

    Строка адреса в браузере:
    http://localhost:8082

    Картинка в браузере:

    H2 Console login page

  5. Подставляем путь к базе, login, password и получаем к ней доступ.

  6. При использовании embegged драйвера надо указать сервлет консоли в сервере приложений (файл web.xml) :
    <servlet>
           <servlet-name>h2</servlet-name>
           <servlet-class>org.h2.server.web.WebServlet</servlet-class>
    </servlet>

    <servlet-mapping>
           <servlet-name>h2</servlet-name>
           <url-pattern>/console/*</url-pattern>
     </servlet-mapping>
  7. Довольно интересное сравнение производительности с другими открытыми базами (Postgres, MySQL) приводится на сайте.


    В 2015 году попробовал сравнить на своём приложении скорость записи в базу с Derby SQL. То, что Derby делала за 2 минуты, H2 сделала за 3 секунды. Нехило!

 

Для Spring Boot настройки в application.properties:

    spring.h2.console.enabled=true
    spring.datasource.url=jdbc:h2:file:/home/test/h2db
    spring.datasource.driver-class-name=org.h2.Driver
    spring.datasource.username=login
    spring.datasource.password=password
    spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

 

Для Maven:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>