Я давно начал использовать H2 Database Engine в качестве встроенной базы данных в JTheque и других проектах. Этот пост представляет собой презентацию этого движка базы данных и некоторую информацию о его использовании.
H2 является чистой базой данных Java . Он может работать как встроенная база данных или в режиме сервера . Разработчики базы данных обеспечили очень маленькую площадь для этой базы данных; файл JAR составляет всего около 1 МБ.
Производительность
Еще одна особенность, которую разработчики считают важной в этой базе данных, — производительность. Вот два сравнительных графика для H2, Derby и HSQLDB, сгенерированных непосредственно из эталонных данных с официального сайта H2.
Как видите, производительность H2 очень хорошая. Это основная причина, по которой я использовал H2 вместо HSQLDB.
Режимы
H2 может работать в трех режимах. Встроенный, Серверный или Смешанный режимы. В каждом режиме вы можете использовать память или постоянные таблицы.
В этом режиме база данных доступна только с текущей виртуальной машины. Это самый быстрый режим подключения.
В этом режиме база данных работает на сервере, поэтому несколько приложений могут обращаться к ядрам базы данных. Конечно, этот режим медленнее, чем во встроенном режиме, потому что все данные передаются с использованием TCP / IP.
В этом режиме первое приложение создает базу данных во встроенном режиме, но также запускает сервер для предоставления доступа к базе данных.
использование
Использование этой базы данных так же просто, как и использование любой другой базы данных. Вам просто нужно создать базу данных с помощью драйвера 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/