Статьи

Презентация и использование H2 Database Engine

Я давно начал использовать H2 Database Engine в качестве встроенной базы данных в JTheque и других проектах. Этот пост представляет собой презентацию этого движка базы данных и некоторую информацию о его использовании.

H2 является чистой базой данных Java . Он может работать как встроенная база данных или в режиме сервера . Разработчики базы данных обеспечили очень маленькую площадь для этой базы данных; файл JAR составляет всего около 1 МБ.

Производительность

Еще одна особенность, которую разработчики считают важной в этой базе данных, — производительность. Вот два сравнительных графика для H2, Derby и HSQLDB, сгенерированных непосредственно из эталонных данных с официального сайта H2.

Производительность H2 во встроенном режиме

Производительность H2 во встроенном режиме

Производительность H2 в режиме сервера

Производительность H2 в режиме сервера

Как видите, производительность H2 очень хорошая. Это основная причина, по которой я использовал H2 вместо HSQLDB.

Режимы

H2 может работать в трех режимах. Встроенный, Серверный или Смешанный режимы. В каждом режиме вы можете использовать память или постоянные таблицы.

H2 Embedded Mode

В этом режиме база данных доступна только с текущей виртуальной машины. Это самый быстрый режим подключения.

H2 Server Mode

В этом режиме база данных работает на сервере, поэтому несколько приложений могут обращаться к ядрам базы данных. Конечно, этот режим медленнее, чем во встроенном режиме, потому что все данные передаются с использованием TCP / IP.

H2 смешанный режим

H2 смешанный режим

В этом режиме первое приложение создает базу данных во встроенном режиме, но также запускает сервер для предоставления доступа к базе данных.

использование

Использование этой базы данных так же просто, как и использование любой другой базы данных. Вам просто нужно создать базу данных с помощью драйвера JDBC, и база данных будет создана автоматически или сервер будет запущен, если это необходимо.

Вот пример для создания базы данных во встроенном режиме, вам просто нужно сделать следующее:

Class.forName("org.hsqldb.jdbcDriver").newInstance();
Connection connexion = DriverManager.getConnection("jdbc:h2:test", "sa", "");

test — это имя базы данных. Если база данных уже существует, данные будут загружены.

Вы также можете создать базу данных в памяти. Но когда вы закрываете базу данных, данные не сохраняются. Это полезно для сравнительного анализа на примере. Это также режим с лучшей производительностью. Вот пример, показывающий, как создать базу данных памяти (с именем test):

Connection connexion = DriverManager.getConnection("jdbc:h2:mem:test", "sa",  "");

Чтобы запустить сервер, у вас есть два варианта. Вы можете запустить его из командной строки:

java -cp h2*.jar org.h2.tools.Server

Или программно:

Server server = Server.createTcpServer(args).start();
...
server.stop();

А для подключения к удаленному серверу просто измените URL JDBC:

Connection connexion = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test", "sa",  "");

База данных закрывается, когда закрывается последнее соединение с базой данных.

Используемый SQL является стандартным SQL с некоторыми дополнениями для поддержки функций H2. Синтаксис описан на официальном сайте: грамматика SQL . Например, вот SQL-запросы для создания различных типов баз данных H2:

CREATE CACHED TABLE cachedTable ...
CREATE MEMORY TABLE memTable ...
CREATE MEMORY TEMPORARY TABLE memTempTable ...
CREATE CACHED TEMPORARY TABLE memTempTable ...
  • Кэшированная таблица является типом таблицы по умолчанию. Данные являются постоянными и не ограничены памятью.
  • Таблица памяти также является постоянной, но индекс данных сохраняется в памяти, поэтому таблица памяти не может быть слишком большой.
  • Временная таблица удаляется при закрытии базы данных.

Итак, я думаю, что мы рассмотрели здесь основные вещи, которые мы должны знать, чтобы начать использовать H2 Database Engine.

Для получения дополнительной информации обратитесь на официальный сайт .

С http://www.baptiste-wicht.com/2010/08/presentation-usage-h2-database-engine/