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

 

   

     Также, как и 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 обладает удобной встроенной консолью для управления базой,  доступ к которой можно получить с любого броузера.
    При использовании 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>
  5. Довольно интересное сравнение производительности с другими открытыми базами (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>