Учебники

База данных H2 — Краткое руководство

База данных H2 — Введение

H2 — это легковесная база данных Java с открытым исходным кодом. Он может быть встроен в приложения Java или работать в режиме клиент-сервер. В основном, база данных H2 может быть настроена для работы в качестве базы данных памяти, что означает, что данные не будут сохраняться на диске. Из-за встроенной базы данных она не используется для разработки продукции, но в основном используется для разработки и тестирования.

Эта база данных может использоваться во встроенном режиме или в режиме сервера. Ниже приведены основные характеристики базы данных H2 —

  • Очень быстрый, с открытым исходным кодом, JDBC API
  • Доступен во встроенном и серверном режимах; базы данных в памяти
  • Консольное приложение на основе браузера
  • Небольшая площадь — около 1,5 МБ, размер файла

Особенности базы данных H2

Основные характеристики базы данных H2:

  • Это чрезвычайно быстрый движок базы данных.

  • H2 с открытым исходным кодом и написана на Java.

  • Он поддерживает стандартные API SQL и JDBC. Он также может использовать драйвер PostgreSQL ODBC.

  • Он имеет встроенный и серверный режим.

  • H2 поддерживает кластеризацию и многоверсионный параллелизм .

  • У этого есть сильные особенности безопасности.

Это чрезвычайно быстрый движок базы данных.

H2 с открытым исходным кодом и написана на Java.

Он поддерживает стандартные API SQL и JDBC. Он также может использовать драйвер PostgreSQL ODBC.

Он имеет встроенный и серверный режим.

H2 поддерживает кластеризацию и многоверсионный параллелизм .

У этого есть сильные особенности безопасности.

Дополнительные возможности

Ниже приведены некоторые дополнительные функции базы данных H2 —

  • H2 — это базы данных и таблицы на основе дисков или в памяти, поддержка баз данных только для чтения, временные таблицы.

  • H2 обеспечивает поддержку транзакций (чтение зафиксировано), 2-фазную фиксацию нескольких соединений, блокировку на уровне таблицы.

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

  • H2 содержит прокручиваемую и обновляемую поддержку набора результатов, большой набор результатов, внешнюю сортировку результатов, функции могут возвращать набор результатов.

  • H2 поддерживает зашифрованную базу данных (AES), шифрование пароля SHA-256, функции шифрования и SSL.

H2 — это базы данных и таблицы на основе дисков или в памяти, поддержка баз данных только для чтения, временные таблицы.

H2 обеспечивает поддержку транзакций (чтение зафиксировано), 2-фазную фиксацию нескольких соединений, блокировку на уровне таблицы.

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

H2 содержит прокручиваемую и обновляемую поддержку набора результатов, большой набор результатов, внешнюю сортировку результатов, функции могут возвращать набор результатов.

H2 поддерживает зашифрованную базу данных (AES), шифрование пароля SHA-256, функции шифрования и SSL.

Компоненты в базе данных H2

Чтобы использовать базу данных H2, вам необходимо иметь следующие компоненты:

  • Веб-браузер
  • Консольный сервер H2

Это клиент-серверное приложение, поэтому для его запуска требуются и сервер, и клиент (браузер).

База данных H2 — Установка

H2 — это база данных, написанная на Java. Мы можем легко встроить эту базу данных в наше приложение, используя JDBC. Мы можем запустить это на многих разных платформах или в любой версии Java Runtime Environment. Однако перед установкой базы данных в системе должна быть установлена ​​Java.

Проверьте установку Java

Если JDK установлен в системе, попробуйте следующую команду, чтобы проверить версию Java.

java –version

Если JDk успешно установлен в системе, мы получим следующий вывод.

java version "1.8.0_91" 
Java(TM) SE Runtime Environment (build 1.8.0_91-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Если JDK не установлен в системе, перейдите по следующей ссылке, чтобы установить JDK .

Установить базу данных H2

Мы можем запустить эту базу данных на разных платформах. В этой главе мы узнаем об установке базы данных H2 в Windows.

Ниже приведены инструкции по установке базы данных H2 в операционной системе Windows.

Шаг 1: Загрузите установочный файл H2

Загрузите последнюю версию базы данных H2 по указанной ссылке. По этой ссылке вы получите последнюю версию базы данных H2 в двух типах. Один из них — это тип установщика Windows (то есть файл .exe), а второй — независимый от платформы zip-файл для других операционных систем.

Щелкните установщик Windows, чтобы загрузить поддерживаемую Windows базу данных H2 после загрузки файла .exe. В этом случае мы используем базу данных H2 с версией 1.4.192.

Шаг 2: Установите базу данных H2

После загрузки мы получаем установочный файл H2 для Windows (т.е. h2-setup-yyyy-mm-dd.exe) в каталоге Downloads. Чтобы начать процесс установки базы данных H2, дважды щелкните файл установщика.

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

Установить базу данных H2

Как видно на приведенном выше снимке экрана, по умолчанию он будет использовать C: \ ProgramFiles (x86) \ H2 в качестве папки назначения. Нажмите «Далее», чтобы перейти к следующему шагу. Появится следующий экран.

Место назначения

На приведенном выше снимке экрана нажмите кнопку «Установить», чтобы начать процесс установки. После установки мы получаем следующий скриншот.

Кнопка установки

Нажмите Finish для завершения процесса установки.

Шаг 3: Проверьте установку базы данных H2

После установки давайте проверим установку базы данных в системе. Нажмите Windows → введите H2 Console → Щелкните значок консоли H2. Подключитесь к URL http: // localhost: 8082 . Во время подключения база данных H2 запросит регистрацию базы данных, как показано на следующем снимке экрана.

Установка базы данных

Заполните все детали в вышеприведенном диалоговом окне, такие как сохраненные настройки, имя настроек, класс драйвера, URL JDBC, имя пользователя и пароль. В URL JDBC укажите местонахождение базы данных и имя базы данных. Имя пользователя и Пароль — это поля для имени пользователя и пароля базы данных. Нажмите Подключиться.

Страница приветствия базы данных появляется, как показано на следующем снимке экрана.

Всплывающие окна

База данных H2 — Выбрать

Команда выбора используется для извлечения данных записи из таблицы или нескольких таблиц. Если мы спроектируем запрос на выборку, он возвращает данные в форме таблицы результатов, называемой наборами результатов .

Синтаксис

Основной синтаксис оператора SELECT следующий:

SELECT [ TOP term ] [ DISTINCT | ALL ] selectExpression [,...] 
FROM tableExpression [,...] [ WHERE expression ] 
[ GROUP BY expression [,...] ] [ HAVING expression ] 
[ { UNION [ ALL ] | MINUS | EXCEPT | INTERSECT } select ] [ ORDER BY order [,...] ] 
[ [ LIMIT expression ] [ OFFSET expression ] [ SAMPLE_SIZE rowCountInt ] ] 
[ FOR UPDATE ]

Чтобы получить все доступные поля, используйте следующий синтаксис.

SELECT * FROM table_name;

пример

Рассмотрим таблицу CUSTOMER, имеющую следующие записи:

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | MP        |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 

Чтобы получить таблицу клиентов вместе с данными, выполните следующие запросы.

CREATE TABLE CUSTOMER (id number, name varchar(20), age number, address varchar(20), 
salary number);  

INSERT into CUSTOMER values (1, 'Ramesh', 32, 'Ahmedabad', 2000); 
INSERT into CUSTOMER values (2, 'Khilan', 25, 'Delhi', 1500); 
INSERT into CUSTOMER values (3, 'kaushik', 23, 'Kota', 2000); 
INSERT into CUSTOMER values (4, 'Chaitali', 25, 'Mumbai', 6500); 
INSERT into CUSTOMER values (5, 'Hardik', 27, 'Bhopal', 8500); 
INSERT into CUSTOMER values (6, 'Komal', 22, 'MP', 4500); 
INSERT into CUSTOMER values (7, 'Muffy', 24, 'Indore', 10000);

Следующая команда является примером, который извлекает поля ID, Имя и Зарплата клиентов, доступных в таблице CUSTOMER.

SELECT ID, NAME, SALARY FROM CUSTOMERS;

Приведенная выше команда дает следующий результат.

+----+----------+----------+ 
| ID | NAME     | SALARY   | 
+----+----------+----------+ 
|  1 | Ramesh   |  2000.00 | 
|  2 | Khilan   |  1500.00 | 
|  3 | kaushik  |  2000.00 | 
|  4 | Chaitali |  6500.00 | 
|  5 | Hardik   |  8500.00 | 
|  6 | Komal    |  4500.00 | 
|  7 | Muffy    | 10000.00 | 
+----+----------+----------+ 

Используйте следующий запрос, чтобы получить все поля таблицы CUSTOMERS.

SQL> SELECT * FROM CUSTOMERS;

Приведенный выше запрос дает следующий результат —

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | MP        |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 

База данных H2 — Вставка

Оператор SQL INSERT используется для добавления новых строк данных в таблицу в базе данных.

Синтаксис

Ниже приведен основной синтаксис оператора INSERT INTO.

INSERT INTO tableName 
{ [ ( columnName [,...] ) ] 
{ VALUES 
{ ( { DEFAULT | expression } [,...] ) } [,...] | [ DIRECT ] [ SORTED ] select } } | 
{ SET { columnName = { DEFAULT | expression } } [,...] }

Используя этот оператор INSERT, мы можем вставить новую запись или новые строки в таблицу. При использовании предложения DIRECT результаты напрямую влияют на целевую таблицу без какого-либо промежуточного шага. Однако при добавлении значений для всех столбцов таблицы убедитесь, что порядок значений находится в том же порядке, что и столбцы в таблице.

пример

Давайте возьмем пример и попробуем вставить следующие данные в таблицу Customer.

Я БЫ название Возраст Адрес Оплата труда
1 Рамеш 32 Ахмедабад 2000
2 Khilan 25 Дели 1500
3 Кошик 23 Kota 2000
4 Chaitail 25 Mumbai 6500
5 Hardik 27 Бхопал 8500
6 Komal 22 член парламента 4500
7 Muffy 24 Индор 10000

Мы можем получить все данные записи в таблице клиентов, выполнив следующие команды.

INSERT INTO CUSTOMER VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000); 
INSERT INTO CUSTOMER VALUES (2, 'Khilan', 25, 'Delhi', 1500); 
INSERT INTO CUSTOMER VALUES (3, 'kaushik', 23, 'Kota', 2000); 
INSERT INTO CUSTOMER VALUES (4, 'Chaitali', 25, 'Mumbai', 6500); 
INSERT INTO CUSTOMER VALUES (5, 'Hardik', 27, 'Bhopal', 8500); 
INSERT INTO CUSTOMER VALUES (6, 'Komal', 22, 'MP', 4500); 
INSERT INTO CUSTOMER VALUES (7, 'Muffy', 24, 'Indore', 10000); 

База данных H2 — Обновление

Запрос UPDATE используется для обновления или изменения существующих записей в таблице. Мы можем использовать предложение WHERE с запросом UPDATE для обновления выбранных строк, в противном случае это затронет все строки.

Синтаксис

Ниже приведен основной синтаксис запроса UPDATE.

UPDATE tableName [ [ AS ] newTableAlias ] SET 
{ { columnName = { DEFAULT | expression } } [,...] } | 
{ ( columnName [,...] ) = ( select ) } 
[ WHERE expression ] [ ORDER BY order [,...] ] [ LIMIT expression ]

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

пример

Рассмотрим таблицу CUSTOMER, имеющую следующие записи.

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | MP        |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 

Если вы хотите получить таблицу клиентов вместе с данными, выполните следующие запросы.

CREATE TABLE CUSTOMER (id number, name varchar(20), age number, address varchar(20), 
   salary number);  
INSERT into CUSTOMER values (1, 'Ramesh', 32, 'Ahmedabad', 2000); 
INSERT into CUSTOMER values (2, 'Khilan', 25, 'Delhi', 1500); 
INSERT into CUSTOMER values (3, 'kaushik', 23, 'Kota', 2000); 
INSERT into CUSTOMER values (4, 'Chaitali', 25, 'Mumbai', 6500); 
INSERT into CUSTOMER values (5, 'Hardik', 27, 'Bhopal', 8500); 
INSERT into CUSTOMER values (6, 'Komal', 22, 'MP', 4500); 
INSERT into CUSTOMER values (7, 'Muffy', 24, 'Indore', 10000);

Следующая команда является примером, который обновил бы АДРЕС для клиента, чей идентификатор 6 —

UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;

Теперь таблица CUSTOMERS будет иметь следующие записи. Мы можем проверить записи таблицы клиентов, выполнив следующий запрос.

SELECT * FROM CUSTOMERS;

Приведенный выше запрос дает следующий результат.

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | Pune      |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 

Чтобы изменить все значения столбцов ADDRESS и SALARY в таблице CUSTOMERS, нам не нужно использовать предложение WHERE. Запрос ОБНОВЛЕНИЯ будет следующим:

UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00; 

Теперь таблица CUSTOMERS будет иметь следующие записи. Мы можем проверить записи таблицы клиентов, выполнив следующий запрос.

SELECT * FROM CUSTOMERS;

Приведенный выше запрос дает следующий результат —

+----+----------+-----+---------+---------+ 
| ID | NAME     | AGE | ADDRESS | SALARY  | 
+----+----------+-----+---------+---------+ 
|  1 | Ramesh   |  32 | Pune    | 1000.00 | 
|  2 | Khilan   |  25 | Pune    | 1000.00 | 
|  3 | kaushik  |  23 | Pune    | 1000.00 | 
|  4 | Chaitali |  25 | Pune    | 1000.00 | 
|  5 | Hardik   |  27 | Pune    | 1000.00 | 
|  6 | Komal    |  22 | Pune    | 1000.00 | 
|  7 | Muffy    |  24 | Pune    | 1000.00 | 
+----+----------+-----+---------+---------+ 

База данных H2 — Удалить

Запрос SQL DELETE используется для удаления существующих записей из таблицы. Мы можем использовать предложение WHERE с запросом DELETE для удаления выбранных записей, в противном случае все записи будут удалены.

Синтаксис

Ниже приведен общий синтаксис запроса команды удаления.

DELETE [ TOP term ] FROM tableName [ WHERE expression ] [ LIMIT term ]

Приведенный выше синтаксис удаляет строки из таблицы. Если указано TOP или LIMIT, то самое большее указанное количество строк удаляется (без ограничения, если ноль или меньше нуля).

пример

Рассмотрим таблицу CUSTOMER, имеющую следующие записи.

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  6 | Komal    |  22 | MP        |  4500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+

Следующая команда удалит данные клиента, чей идентификатор равен 6.

DELETE FROM CUSTOMERS WHERE ID = 6;

После выполнения вышеуказанной команды проверьте таблицу Customer, выполнив следующую команду.

SELECT * FROM CUSTOMERS; 

Приведенная выше команда производит следующий вывод —

+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 | 
|  2 | Khilan   |  25 | Delhi     |  1500.00 | 
|  3 | kaushik  |  23 | Kota      |  2000.00 | 
|  4 | Chaitali |  25 | Mumbai    |  6500.00 | 
|  5 | Hardik   |  27 | Bhopal    |  8500.00 | 
|  7 | Muffy    |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 

Если мы хотим УДАЛИТЬ все записи из таблицы CUSTOMERS, мы не используем предложение WHERE. Запрос DELETE будет выглядеть следующим образом.

DELETE FROM CUSTOMER; 

После выполнения вышеупомянутой команды никакие записи не будут доступны в таблице Customer.

База данных H2 — Резервное копирование

BACKUP — это команда, используемая для резервного копирования базы данных в отдельный файл .zip. Объекты не блокируются, и при выполнении резервного копирования журнал транзакций также копируется. Права администратора необходимы для выполнения этой команды.

Синтаксис

Ниже приведен общий синтаксис команды резервного копирования.

BACKUP TO fileNameString;

пример

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

BACKUP TO 'backup.zip';

Выполнив вышеуказанную команду, вы получите файл backup.zip в локальной файловой системе.

База данных H2 — Позвони

CALL — это команда SQL, которая принадлежит серверу базы данных H2. Эта команда используется для вычисления простого выражения. Возвращает результат данного выражения в одном поле столбца. Когда он возвращает массив результатов, то каждый элемент в массиве отображается в виде значения столбца.

Синтаксис

Ниже приведен общий синтаксис команды CALL.

CALL expression;

Мы можем использовать арифметическое выражение в этом синтаксисе.

пример

Давайте возьмем пример и выполним арифметическое выражение (15 * 25) с помощью команды call.

CALL 15*25; 

Приведенная выше команда производит следующий вывод.

375
375

База данных H2 — Объяснить

Команда EXPLAIN отображает план выполнения для оператора. Когда мы выполняем инструкцию с помощью команды EXPLAIN ANALYZE, план запроса будет включать в себя фактическое число проверок строк для каждой таблицы.

Синтаксис

Ниже приводится общий синтаксис команды EXPLAIN.

EXPLAIN { [ PLAN FOR ] | ANALYZE } { select | insert | update | delete | merge} 

Наряду с этим синтаксисом мы можем использовать select, insert, delete и merge.

пример

В этом примере поясняются детали плана запроса клиента с идентификатором 1.

EXPLAIN SELECT * FROM CUSTOMER WHERE ID = 1;

Приведенная выше команда производит следующий вывод —

Объяснить вывод

База данных H2 — Слияние

Команда MERGE используется для обновления существующих строк и вставки новых строк в таблицу. Столбец первичного ключа играет важную роль при использовании этой команды; он используется для поиска строки.

Синтаксис

Ниже приведен общий синтаксис команды MERGE.

MERGE INTO tableName [ ( columnName [,...] ) ] 
[ KEY ( columnName [,...] ) ] 
{ VALUES { ( { DEFAULT | expression } [,...] ) } [,...] | select } 

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

пример

В этом примере давайте попробуем добавить новую запись в таблицу Customers. Ниже приведены подробности новой записи в таблице.

Название столбца Значение
Я БЫ 8
НАЗВАНИЕ Lokesh
ВОЗРАСТ 32
АДРЕС Хайдарабад
ОПЛАТА ТРУДА 2500

Используя следующий запрос, давайте вставим данную запись в запрос базы данных H2.

MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Lokesh', 32, 'Hyderabad', 2500);

Приведенный выше запрос приводит к следующему выводу.

Update count: 1 

Давайте проверим записи таблицы Customer, выполнив следующий запрос.

SELECT * FROM CUSTOMER;

Приведенный выше запрос приводит к следующему выводу.

Я БЫ название Возраст Адрес Оплата труда
1 Рамеш 32 Ахмедабад 2000
2 Khilan 25 Дели 1500
3 Кошик 23 Kota 2000
4 Chaitali 25 Mumbai 6500
5 Hardik 27 Бхопал 8500
6 Komal 22 член парламента 4500
7 Muffy 24 Индор 10000
8 Lokesh 32 Хайдарабад 2500

Теперь давайте попробуем обновить запись с помощью команды Merge . Ниже приведены подробности записи, подлежащей обновлению.

Название столбца Значение
Я БЫ 8
НАЗВАНИЕ Loki
ВОЗРАСТ 32
АДРЕС Хайдарабад
ОПЛАТА ТРУДА 3000

Используйте следующий запрос, чтобы вставить данную запись в запрос базы данных H2.

MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Loki', 32, 'Hyderabad', 3000);

Приведенный выше запрос приводит к следующему выводу.

Update count: 1 

Давайте проверим записи таблицы Customer, выполнив следующий запрос.

SELECT * FROM CUSTOMER; 

Приведенный выше запрос приводит к следующему выводу:

Я БЫ название Возраст Адрес Оплата труда
1 Рамеш 32 Ахмедабад 2000
2 Khilan 25 Дели 1500
3 Кошик 23 Kota 2000
4 Chaitali 25 Mumbai 6500
5 Hardik 27 Бхопал 8500
6 Komal 22 член парламента 4500
7 Muffy 24 Индор 10000
8 Loki 32 Хайдарабад 3000

База данных H2 — Показать

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

Синтаксис

Ниже приведен общий синтаксис команды SHOW.

SHOW { SCHEMAS | TABLES [ FROM schemaName ] | 
COLUMNS FROM tableName [ FROM schemaName ] } 

пример

Следующая команда может быть использована для получения списка таблиц в текущей базе данных.

SHOW TABLES; 

Приведенная выше команда производит следующий вывод.

TABLE_NAME TABLE_SCHEMA
ПОКУПАТЕЛЬ ОБЩЕСТВЕННОЕ
EMP ОБЩЕСТВЕННОЕ

База данных H2 — Создать

CREATE — это общая команда SQL, используемая для создания таблиц, схем, последовательностей, представлений и пользователей на сервере базы данных H2.

Создать таблицу

Создать таблицу — это команда, используемая для создания пользовательской таблицы в текущей базе данных.

Синтаксис

Ниже приведен общий синтаксис команды «Создать таблицу».

CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ] 
TABLE [ IF NOT EXISTS ] name 
[ ( { columnDefinition | constraint } [,...] ) ] 
[ ENGINE tableEngineName [ WITH tableEngineParamName [,...] ] ] 
[ NOT PERSISTENT ] [ TRANSACTIONAL ] 
[ AS select ] 

Используя общий синтаксис команды «Создать таблицу», мы можем создавать различные типы таблиц, такие как кэшированные таблицы, таблицы памяти и временные таблицы. Ниже приведен список для описания различных предложений из данного синтаксиса.

  • CACHED — кэшированные таблицы являются типом по умолчанию для обычных таблиц. Это означает, что количество строк не ограничено основной памятью.

  • MEMORY — Таблицы памяти являются типом по умолчанию для временных таблиц. Это означает, что таблицы памяти не должны становиться слишком большими, а индексные данные хранятся в основной памяти.

  • ВРЕМЕННЫЕ — временные таблицы удаляются при закрытии или открытии базы данных. В основном, временные таблицы бывают двух типов:

    • Тип GLOBAL — Доступен для всех соединений.

    • ЛОКАЛЬНЫЙ тип — доступен по текущему соединению.

    Тип по умолчанию для временных таблиц — глобальный тип. Индексы временных таблиц хранятся в основной памяти, если временная таблица не создана с использованием CREATE CACHED TABLE.

  • ENGINE — опция ENGINE требуется только при использовании пользовательских реализаций таблиц.

  • NOT PERSISTENT — это модификатор для хранения полных данных таблицы в памяти, и все строки теряются при закрытии базы данных.

  • TRANSACTIONAL — это ключевое слово, которое фиксирует открытую транзакцию, и эта команда поддерживает только временные таблицы.

CACHED — кэшированные таблицы являются типом по умолчанию для обычных таблиц. Это означает, что количество строк не ограничено основной памятью.

MEMORY — Таблицы памяти являются типом по умолчанию для временных таблиц. Это означает, что таблицы памяти не должны становиться слишком большими, а индексные данные хранятся в основной памяти.

ВРЕМЕННЫЕ — временные таблицы удаляются при закрытии или открытии базы данных. В основном, временные таблицы бывают двух типов:

Тип GLOBAL — Доступен для всех соединений.

ЛОКАЛЬНЫЙ тип — доступен по текущему соединению.

Тип по умолчанию для временных таблиц — глобальный тип. Индексы временных таблиц хранятся в основной памяти, если временная таблица не создана с использованием CREATE CACHED TABLE.

ENGINE — опция ENGINE требуется только при использовании пользовательских реализаций таблиц.

NOT PERSISTENT — это модификатор для хранения полных данных таблицы в памяти, и все строки теряются при закрытии базы данных.

TRANSACTIONAL — это ключевое слово, которое фиксирует открытую транзакцию, и эта команда поддерживает только временные таблицы.

пример

В этом примере давайте создадим таблицу с именем tutorials_tbl, используя следующие данные.

Sr.No Название столбца Тип данных
1 Я БЫ Int
2 заглавие VARCHAR (50)
3 автор VARCHAR (20)
4 Дата подачи Дата

Следующий запрос используется для создания таблицы tutorials_tbl вместе с данными столбца.

CREATE TABLE tutorials_tbl ( 
   id INT NOT NULL, 
   title VARCHAR(50) NOT NULL, 
   author VARCHAR(20) NOT NULL, 
   submission_date DATE, 
);

Приведенный выше запрос приводит к следующему выводу.

(0) rows effected 

Создать схему

Создать схему — это команда, используемая для создания зависимой от пользователя схемы с определенной авторизацией (под текущим зарегистрированным пользователем).

Синтаксис

Ниже приведен общий синтаксис команды Создать схему.

CREATE SCHEMA [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ] 

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

Эта команда фиксирует открытую транзакцию в этом соединении.

пример

В этом примере давайте создадим схему с именем test_schema под пользователем SA, используя следующую команду.

CREATE SCHEMA test_schema AUTHORIZATION sa; 

Приведенная выше команда производит следующий вывод.

(0) rows effected 

Создать последовательность

Последовательность — это концепция, которая используется для генерации числа, следуя последовательности для идентификатора или любых случайных значений столбца.

Синтаксис

Ниже приведен общий синтаксис команды create sequence.

CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ] 
[ INCREMENT BY long ] 
[ MINVALUE long | NOMINVALUE | NO MINVALUE ] 
[ MAXVALUE long | NOMAXVALUE | NO MAXVALUE ] 
[ CYCLE long | NOCYCLE | NO CYCLE ] 
[ CACHE long | NOCACHE | NO CACHE ] 

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

пример

В этом примере давайте создадим последовательность с именем SEQ_ID , используя следующий запрос.

CREATE SEQUENCE SEQ_ID; 

Приведенный выше запрос приводит к следующему выводу.

(0) rows effected 

База данных H2 — Изменить

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

Изменить таблицу Добавить

Alter Table Add — команда, используемая для добавления нового столбца в таблицу вместе с соответствующим типом данных. Эта команда фиксирует транзакцию в этом соединении.

Синтаксис

Ниже приводится общий синтаксис команды Alter Table Add.

ALTER TABLE [ IF EXISTS ] tableName ADD [ COLUMN ] 
{ [ IF NOT EXISTS ] columnDefinition [ { BEFORE | AFTER } columnName ] 
   | ( { columnDefinition } [,...] ) }

пример

В этом примере мы добавим новый столбец start_date в таблицу tutorials_tbl . Тип данных для start_date — Дата. Ниже приведен запрос на добавление нового столбца.

ALTER TABLE tutorials_tbl ADD start_date DATE;

Приведенный выше запрос приводит к следующему выводу.

(6) rows effected 

Изменить таблицу Добавить ограничение

Изменить ограничение добавления таблицы — это команда, используемая для добавления в таблицу различных ограничений, таких как первичный ключ, внешний ключ, не ноль и т. Д.

Требуемые индексы создаются автоматически, если они еще не существуют. Невозможно отключить проверку уникального ограничения. Эта команда фиксирует открытую транзакцию в этом соединении.

Синтаксис

Ниже приведен общий синтаксис команды ограничения таблицы Alter.

ALTER TABLE [ IF EXISTS ] tableName ADD constraint [ CHECK | NOCHECK ] 

пример

В этом примере мы добавим ограничение первичного ключа (tutorials_tbl_pk) к идентификатору столбца таблицы tutorials_tbl , используя следующий запрос.

ALTER TABLE tutorials_tbl ADD CONSTRAINT tutorials_tbl_pk PRIMARYKEY(id); 

Приведенный выше запрос приводит к следующему выводу.

(6) row (s) effected

Alter Table Rename Constraint

Эта команда используется для переименования имени ограничения определенной таблицы отношений. Эта команда фиксирует открытую транзакцию в этом соединении.

Синтаксис

Ниже приведен общий синтаксис команды «Изменить ограничение переименования таблиц».

ALTER TABLE [ IF EXISTS ] tableName RENAME oldConstraintName TO newConstraintName

При использовании этого синтаксиса убедитесь, что старое имя ограничения должно существовать с соответствующим столбцом.

пример

В этом примере мы изменим имя ограничения первичного ключа таблицы tutorials_tbl с tutorials_tbl_pk на tutorials_tbl_pk_constraint . Ниже приведен запрос для этого.

ALTER TABLE tutorials_tbl RENAME CONSTRAINT 
tutorials_tbl_pk TO tutorials_tbl_pk_constraint;

Приведенный выше запрос приводит к следующему выводу.

(1) row (s) effected 

Изменить таблицу Изменить столбец

Эта команда используется для изменения структуры и свойств столбца конкретной таблицы. Изменение свойств означает изменение типа данных столбца, переименование столбца, изменение значения идентификатора или изменение избирательности.

Синтаксис

Ниже приведен общий синтаксис команды «Изменить таблицу».

ALTER TABLE [ IF EXISTS ] tableName ALTER COLUMN columnName 
{ { dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] } 
| { RENAME TO name } 
| { RESTART WITH long } 
| { SELECTIVITY int } 
| { SET DEFAULT expression } 
| { SET NULL } 
| { SET NOT NULL } } 

В приведенном выше синтаксисе —

  • RESTART — команда изменяет следующее значение столбца с автоинкрементом.

  • SELECTIVITY — команда устанавливает селективность (1-100) для столбца. На основе значения селективности мы можем отобразить значение столбца.

  • SET DEFAULT — изменяет значение по умолчанию для столбца.

  • SET NULL — устанавливает столбец для разрешения NULL.

  • SET NOT NULL — устанавливает для столбца разрешение NOT NULL.

RESTART — команда изменяет следующее значение столбца с автоинкрементом.

SELECTIVITY — команда устанавливает селективность (1-100) для столбца. На основе значения селективности мы можем отобразить значение столбца.

SET DEFAULT — изменяет значение по умолчанию для столбца.

SET NULL — устанавливает столбец для разрешения NULL.

SET NOT NULL — устанавливает для столбца разрешение NOT NULL.

пример

В этом примере мы переименуем столбец таблицы tutorials_tbl из заголовка в Tutorial_Title, используя следующий запрос.

ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title; 

Приведенный выше запрос приводит к следующему выводу.

(0) row(s) effected 

Аналогичным образом мы можем выполнить различные сценарии с помощью команды ALTER.

База данных H2 — Дроп

DROP — это команда, взятая из общей грамматики SQL. Эта команда используется для удаления компонента базы данных и его структуры из памяти. Существуют различные сценарии с командой Drop, которые мы обсудим в этой главе.

Drop Table

Drop Table — это команда, которая удаляет соответствующую таблицу и ее структуру.

Синтаксис

Ниже приводится общий синтаксис команды удаления таблицы.

DROP TABLE [ IF EXISTS ] tableName [,...] [ RESTRICT | CASCADE ]

Команда не будет выполнена, если мы используем RESTRICT и существует таблица с зависимыми представлениями. Все зависимые представления удаляются, когда мы используем ключевое слово CASCADE.

пример

В этом примере мы удалим таблицу с именем test, используя следующий запрос.

DROP TABLE test;

Приведенный выше запрос приводит к следующему выводу.

(6) row (s) effected 

Схема удаления

Удаление схемы — это команда, которая удаляет соответствующую схему с сервера базы данных. Это не будет работать из текущей схемы.

Синтаксис

DROP SCHEMA [ IF EXISTS ] schemaName 

пример

В этом примере мы удалим схему с именем test_schema, используя следующий запрос.

DROP SCHEMA TEST_SCHEMA; 

Приведенный выше запрос приводит к следующему выводу.

(0) row(s) effected

Падение последовательности

Drop Sequence — команда, используемая для удаления последовательности из структуры таблицы.

Синтаксис

Ниже приведен общий синтаксис команды удаления последовательности.

DROP SEQUENCE [ IF EXISTS ] sequenceName

Эта команда фиксирует открытую транзакцию в этом соединении.

пример

В этом примере мы удалим последовательность с именем sequence_id . Ниже приводится команда.

DROP SEQUENCE sequence_id;

Приведенная выше команда производит следующий вывод.

(0) row (s) effected 

Drop View

Drop View — команда, используемая для удаления существующего представления. Все зависимые представления также удаляются, если используется предложение CASCADE.

Синтаксис

Ниже приведен общий синтаксис команды Drop View.

DROP VIEW [ IF EXISTS ] viewName [ RESTRICT | CASCADE ]

пример

В этом примере мы отбросим представление с именем sample_view, используя следующий запрос.

DROP VIEW sample_view;

Приведенный выше запрос приводит к следующему выводу.

(0) row (s) effected 

База данных H2 — Усечение

TRUNCATE — это команда, используемая для удаления данных из таблицы. В отличие от DELETE FROM без предложения WHERE, эту команду нельзя откатить. Эта команда фиксирует открытую транзакцию в этом соединении.

Синтаксис

Ниже приведен общий синтаксис команды truncate.

TRUNCATE TABLE tableName 

пример

В этом примере мы будем обрезать таблицу с именем test с помощью следующего запроса.

TRUNCATE TABLE test;

Приведенный выше запрос приводит к следующему выводу.

(6) row (s) effected 

База данных H2 — Фиксация

COMMIT — это команда из грамматики SQL, используемая для фиксации транзакции. Мы можем либо зафиксировать конкретную транзакцию, либо мы можем зафиксировать текущую транзакцию.

Синтаксис

Есть два разных синтаксиса для команды COMMIT.

Ниже приводится общий синтаксис команды commit для фиксации текущей транзакции.

COMMIT [ WORK ] 

Ниже приведен общий синтаксис команды commit для фиксации конкретной транзакции.

COMMIT TRANSACTION transactionName

Пример 1

В этом примере давайте передадим текущую транзакцию, используя следующую команду.

COMMIT

Приведенная выше команда производит следующий вывод.

Committed successfully

Пример 2

В этом примере мы зафиксируем транзакцию с именем tx_test с помощью следующей команды.

COMMIT TRANSACTION tx_test;

Приведенная выше команда производит следующий вывод.

Committed successfully 

База данных H2 — Грант

Grant — это команда из грамматики SQL, используемая для предоставления прав на таблицу, пользователю или роли. Права администратора необходимы для выполнения этой команды. Эта команда фиксирует открытую транзакцию в этом соединении.

В этой главе мы обсудим различные сценарии грантовой команды.

Грант Право

Предоставить право — это команда для предоставления прав администратора для таблицы, пользователю или роли.

Синтаксис

Ниже приведен общий синтаксис команды Grant.

GRANT { SELECT | INSERT | UPDATE | DELETE | ALL } [,...] ON 
{ { SCHEMA schemaName } | { tableName [,...] } } 
TO { PUBLIC | userName | roleName }

пример

В этом примере мы предоставим тестовую таблицу только для чтения, используя следующую команду.

GRANT SELECT ON TEST TO READONLY

Приведенная выше команда производит следующий вывод.

Grant successfully

Предоставить изменение любой схемы

Предоставить изменение любой схемы — это команда для предоставления прав на изменение схемы соответствующему пользователю.

Синтаксис

Ниже приводится общий синтаксис команды «Предоставить возможность изменить любую схему».

GRANT ALTER ANY SCHEMA TO userName 

пример

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

GRANT ALTER ANY SCHEMA TO test_user;

Приведенный выше запрос приводит к следующему выводу.

Granted successfully to test_user

База данных H2 — Точка сохранения

SAVEPOINT — это команда, используемая для временного сохранения транзакции. Лучше сохранять точки сохранения в вашей транзакции, поскольку полезно откатывать транзакцию до соответствующей точки сохранения при необходимости.

Синтаксис

Ниже приведен общий синтаксис команды Savepoint.

SAVEPOINT savepointName

пример

В этом примере мы создадим точку сохранения с именем Half_Done, используя следующую команду.

SAVEPOINT Half_Done; 

Приведенная выше команда производит следующий вывод.

Savepoint created

База данных H2 — откат

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

Синтаксис

Существует два разных синтаксиса для команды ROLLABCK.

Ниже приведен общий синтаксис команды отката.

ROLLBACK [ TO SAVEPOINT savepointName ] 

Ниже приведен общий синтаксис команды Откат к конкретной транзакции.

ROLLBACK TRANSACTION transactionName 

Пример 1

В этом примере мы откатим текущую транзакцию до точки сохранения с именем sp1_test с помощью следующей команды.

ROLLBACK sp1_test; 

Приведенная выше команда производит следующий вывод.

Rollback successfully 

Пример 2

В следующем примере мы откатим всю транзакцию с именем tx_test, используя данную команду.

ROLLBACK TRANSACTION tx_test;

Приведенная выше команда производит следующий вывод.

Rollback successfully 

База данных H2 — соединение JDBC

H2 — это база данных JAVA. Мы можем взаимодействовать с этой базой данных, используя JDBC. В этой главе мы увидим, как создать соединение JDBC с базой данных H2 и операции CRUD с базой данных H2.

Как правило, существует пять шагов для создания соединения JDBC.

Шаг 1 — Регистрация драйвера базы данных JDBC.

Class.forName ("org.h2.Driver"); 

Шаг 2 — Открытие соединения.

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

Шаг 3 — Создание заявления.

Statement st = conn.createStatement(); 

Шаг 4 — Выполнение оператора и получение Resultset.

Stmt.executeUpdate("sql statement"); 

Шаг 5 — Закрытие соединения.

conn.close(); 

Прежде чем перейти к созданию полной программы, нам нужно добавить файл h2-1.4.192.jar в CLASSPATH. Мы можем получить этот файл из папки C: \ Program Files (x86) \ H2 \ bin .

Создать таблицу

В этом примере мы напишем программу для создания таблицы. Рассмотрим таблицу с именем Registration, имеющую следующие поля.

S.No Название столбца Тип данных НЕНУЛЕВОЙ Основной ключ
1 Я БЫ Число да да
2 Первый VARCHAR (255) нет нет
3 Прошлой VARCHAR (255) нет нет
4 Возраст Число нет нет

Ниже приведен пример программы с именем H2jdbcCreateDemo .

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement;  

public class H2jdbcCreateDemo { 
   // JDBC driver name and database URL 
   static final String JDBC_DRIVER = "org.h2.Driver";   
   static final String DB_URL = "jdbc:h2:~/test";  
   
   //  Database credentials 
   static final String USER = "sa"; 
   static final String PASS = ""; 
  
   public static void main(String[] args) { 
      Connection conn = null; 
      Statement stmt = null; 
      try { 
         // STEP 1: Register JDBC driver 
         Class.forName(JDBC_DRIVER); 
             
         //STEP 2: Open a connection 
         System.out.println("Connecting to database..."); 
         conn = DriverManager.getConnection(DB_URL,USER,PASS);  
         
         //STEP 3: Execute a query 
         System.out.println("Creating table in given database..."); 
         stmt = conn.createStatement(); 
         String sql =  "CREATE TABLE   REGISTRATION " + 
            "(id INTEGER not NULL, " + 
            " first VARCHAR(255), " +  
            " last VARCHAR(255), " +  
            " age INTEGER, " +  
            " PRIMARY KEY ( id ))";  
         stmt.executeUpdate(sql);
         System.out.println("Created table in given database..."); 
         
         // STEP 4: Clean-up environment 
         stmt.close(); 
         conn.close(); 
      } catch(SQLException se) { 
         //Handle errors for JDBC 
         se.printStackTrace(); 
      } catch(Exception e) { 
         //Handle errors for Class.forName 
         e.printStackTrace(); 
      } finally { 
         //finally block used to close resources 
         try{ 
            if(stmt!=null) stmt.close(); 
         } catch(SQLException se2) { 
         } // nothing we can do 
         try { 
            if(conn!=null) conn.close(); 
         } catch(SQLException se){ 
            se.printStackTrace(); 
         } //end finally try 
      } //end try 
      System.out.println("Goodbye!");
   } 
}

Сохраните вышеуказанную программу в H2jdbcCreateDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.

\>javac H2jdbcCreateDemo.java 
\>java H2jdbcCreateDemo 

Приведенная выше команда производит следующий вывод.

Connecting to database... 
Creating table in given database... 
Created table in given database... 
Goodbye!

После этого выполнения мы можем проверить таблицу, созданную с использованием интерфейса H2 SQL.

Вставить записи

В этом примере мы напишем программу для вставки записей. Вставим следующие записи в таблицу Регистрация.

Я БЫ Первый Прошлой Возраст
100 Zara Али 18
101 Mahnaz Фатма 25
102 Зайд хан 30
103 Sumit Mital 28

Ниже приведен пример программы с именем H2jdbcInsertDemo .

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement;  

public class H2jdbcInsertDemo { 
   // JDBC driver name and database URL 
   static final String JDBC_DRIVER = "org.h2.Driver";   
   static final String DB_URL = "jdbc:h2:~/test";  
   
   //  Database credentials 
   static final String USER = "sa"; 
   static final String PASS = ""; 
  
   public static void main(String[] args) { 
      Connection conn = null; 
      Statement stmt = null; 
      try{
         // STEP 1: Register JDBC driver 
         Class.forName(JDBC_DRIVER);  
         
         // STEP 2: Open a connection 
         System.out.println("Connecting to a selected database..."); 
         conn = DriverManager.getConnection(DB_URL,USER,PASS); 
         System.out.println("Connected database successfully..."); 
         
         // STEP 3: Execute a query 
         stmt = conn.createStatement();  
         String sql = "INSERT INTO Registration " + "VALUES (100, 'Zara', 'Ali', 18)"; 
         
         stmt.executeUpdate(sql); 
         sql = "INSERT INTO Registration " + "VALUES (101, 'Mahnaz', 'Fatma', 25)";  
         
         stmt.executeUpdate(sql); 
         sql = "INSERT INTO Registration " + "VALUES (102, 'Zaid', 'Khan', 30)"; 
         
         stmt.executeUpdate(sql); 
         sql = "INSERT INTO Registration " + "VALUES(103, 'Sumit', 'Mittal', 28)"; 
         
         stmt.executeUpdate(sql); 
         System.out.println("Inserted records into the table..."); 
         
         // STEP 4: Clean-up environment 
         stmt.close(); 
         conn.close(); 
      } catch(SQLException se) { 
         // Handle errors for JDBC 
         se.printStackTrace(); 
      } catch(Exception e) { 
         // Handle errors for Class.forName 
         e.printStackTrace(); 
      } finally { 
         // finally block used to close resources 
         try {
            if(stmt!=null) stmt.close();  
         } catch(SQLException se2) { 
         } // nothing we can do 
         try { 
            if(conn!=null) conn.close(); 
         } catch(SQLException se) { 
            se.printStackTrace(); 
         } // end finally try 
      } // end try 
      System.out.println("Goodbye!"); 
   } 
}

Сохраните вышеуказанную программу в H2jdbcInsertDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.

\>javac H2jdbcInsertDemo.java 
\>java H2jdbcInsertDemo 

Приведенная выше команда производит следующий вывод.

Connecting to a selected database... 
Connected database successfully... 
Inserted records into the table... 
Goodbye! 

Читать запись

В этом примере мы напишем программу для чтения записей. Попробуем прочитать все записи из таблицы регистрации .

Ниже приведен пример программы с именем H2jdbcRecordDemo .

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement;  

public class H2jdbcReadDemo { 
   // JDBC driver name and database URL 
   static final String JDBC_DRIVER = "org.h2.Driver";   
   static final String DB_URL = "jdbc:h2:~/test";  
   
   //  Database credentials 
   static final String USER = "sa"; 
   static final String PASS = ""; 
   
   public static void main(String[] args) { 
      Connection conn = null; 
      Statement stmt = null; 
      try { 
         // STEP 1: Register JDBC driver 
         Class.forName(JDBC_DRIVER); 
         
         // STEP 2: Open a connection 
         System.out.println("Connecting to database..."); 
         conn = DriverManager.getConnection(DB_URL,USER,PASS);  
         
         // STEP 3: Execute a query 
         System.out.println("Connected database successfully..."); 
         stmt = conn.createStatement(); 
         String sql = "SELECT id, first, last, age FROM Registration"; 
         ResultSet rs = stmt.executeQuery(sql); 
         
         // STEP 4: Extract data from result set 
         while(rs.next()) { 
            // Retrieve by column name 
            int id  = rs.getInt("id"); 
            int age = rs.getInt("age"); 
            String first = rs.getString("first"); 
            String last = rs.getString("last");  
            
            // Display values 
            System.out.print("ID: " + id); 
            System.out.print(", Age: " + age); 
            System.out.print(", First: " + first); 
            System.out.println(", Last: " + last); 
         } 
         // STEP 5: Clean-up environment 
         rs.close(); 
      } catch(SQLException se) { 
         // Handle errors for JDBC 
         se.printStackTrace(); 
      } catch(Exception e) { 
         // Handle errors for Class.forName 
         e.printStackTrace(); 
      } finally { 
         // finally block used to close resources 
         try { 
            if(stmt!=null) stmt.close();  
         } catch(SQLException se2) { 
         } // nothing we can do 
         try { 
            if(conn!=null) conn.close(); 
         } catch(SQLException se) { 
            se.printStackTrace(); 
         } // end finally try 
      } // end try 
      System.out.println("Goodbye!"); 
   } 
}

Сохраните вышеуказанную программу в H2jdbcReadDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.

\>javac H2jdbcReadDemo.java 
\>java H2jdbcReadDemo 

Приведенная выше команда производит следующий вывод.

Connecting to a selected database... 
Connected database successfully... 
ID: 100, Age: 18, First: Zara, Last: Ali 
ID: 101, Age: 25, First: Mahnaz, Last: Fatma 
ID: 102, Age: 30, First: Zaid, Last: Khan 
ID: 103, Age: 28, First: Sumit, Last: Mittal 
Goodbye!

Обновить записи

В этом примере мы напишем программу для обновления записей. Попробуем прочитать все записи из таблицы регистрации .

Ниже приведен пример программы с именем H2jdbcUpdateDemo .

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement;  

public class H2jdbcUpdateDemo { 
   // JDBC driver name and database URL 
   static final String JDBC_DRIVER = "org.h2.Driver";   
   static final String DB_URL = "jdbc:h2:~/test";  
   
   // Database credentials 
   static final String USER = "sa"; 
   static final String PASS = ""; 
   
   public static void main(String[] args) { 
      Connection conn = null; 
      Statement stmt = null; 
      try { 
         // STEP 1: Register JDBC driver 
         Class.forName(JDBC_DRIVER); 
         
         // STEP 2: Open a connection 
         System.out.println("Connecting to a database..."); 
         conn = DriverManager.getConnection(DB_URL,USER,PASS);  
         
         // STEP 3: Execute a query 
         System.out.println("Connected database successfully..."); 
         stmt = conn.createStatement(); 
         String sql = "UPDATE Registration " + "SET age = 30 WHERE id in (100, 101)"; 
         stmt.executeUpdate(sql);  
         
         // Now you can extract all the records 
         // to see the updated records 
         sql = "SELECT id, first, last, age FROM Registration"; 
         ResultSet rs = stmt.executeQuery(sql);  
         
         while(rs.next()){ 
            // Retrieve by column name 
            int id  = rs.getInt("id"); 
            int age = rs.getInt("age"); 
            String first = rs.getString("first"); 
            String last = rs.getString("last");  
            
            // Display values 
            System.out.print("ID: " + id); 
            System.out.print(", Age: " + age); 
            System.out.print(", First: " + first); 
            System.out.println(", Last: " + last); 
         } 
         rs.close();    
      } catch(SQLException se) { 
         // Handle errors for JDBC 
         se.printStackTrace(); 
      } catch(Exception e) { 
         // Handle errors for Class.forName 
         e.printStackTrace(); 
      } finally { 
         // finally block used to close resources  
         try { 
            if(stmt!=null) stmt.close(); 
         } catch(SQLException se2) { 
         } // nothing we can do 
         try { 
            if(conn!=null) conn.close(); 
         } catch(SQLException se) { 
            se.printStackTrace(); 
         } // end finally try 
      } // end try 
      System.out.println("Goodbye!"); 
   } 
} 

Сохраните вышеуказанную программу в H2jdbcUpdateDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.

\>javac H2jdbcUpdateDemo.java 
\>java H2jdbcUpdateDemo 

Приведенная выше команда производит следующий вывод.

Connecting to a selected database... 
Connected database successfully... 
ID: 100, Age: 30, First: Zara, Last: Ali 
ID: 101, Age: 30, First: Mahnaz, Last: Fatma 
ID: 102, Age: 30, First: Zaid, Last: Khan 
ID: 103, Age: 28, First: Sumit, Last: Mittal 
Goodbye!

Удалить записи

В этом примере мы напишем программу для удаления записей. Попробуем прочитать все записи из таблицы регистрации .

Ниже приведен пример программы с именем H2jdbcDeleteDemo .

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement;  

public class H2jdbcDeleteDemo { 
   // JDBC driver name and database URL 
   static final String JDBC_DRIVER = "org.h2.Driver";   
   static final String DB_URL = "jdbc:h2:~/test";  
   
   // Database credentials 
   static final String USER = "sa"; 
   static final String PASS = ""; 
  
   public static void main(String[] args) { 
      Connection conn = null; 
      Statement stmt = null; 
      try { 
         // STEP 1: Register JDBC driver 
         Class.forName(JDBC_DRIVER);  
         
         // STEP 2: Open a connection 
         System.out.println("Connecting to database..."); 
         conn = DriverManager.getConnection(DB_URL,USER,PASS);  
         
         // STEP 3: Execute a query
         System.out.println("Creating table in given database..."); 
         stmt = conn.createStatement();  
         String sql = "DELETE FROM Registration " + "WHERE id = 101"; 
         stmt.executeUpdate(sql);  
         
         // Now you can extract all the records 
         // to see the remaining records 
         sql = "SELECT id, first, last, age FROM Registration"; 
         ResultSet rs = stmt.executeQuery(sql);  
         
         while(rs.next()){ 
            // Retrieve by column name 
            int id  = rs.getInt("id"); 
            int age = rs.getInt("age"); 
            String first = rs.getString("first"); 
            String last = rs.getString("last");  
            
            // Display values 
            System.out.print("ID: " + id); 
            System.out.print(", Age: " + age); 
            System.out.print(", First: " + first); 
            System.out.println(", Last: " + last); 
         } 
         rs.close(); 
      } catch(SQLException se) { 
         // Handle errors for JDBC 
         se.printStackTrace();  
      } catch(Exception e) { 
         // Handle errors for Class.forName 
         e.printStackTrace(); 
      } finally { 
         // finally block used to close resources 
         try { 
            if(stmt!=null) stmt.close(); 
         } catch(SQLException se2) { 
         } // nothing we can do 
         try { 
            if(conn!=null) conn.close(); 
         } catch(SQLException se) { 
            se.printStackTrace(); 
         } // end finally try
      } // end try 
      System.out.println("Goodbye!"); 
   } 
}

Сохраните вышеуказанную программу в H2jdbcDeleteDemo.java. Скомпилируйте и выполните вышеуказанную программу, выполнив следующие команды в командной строке.

\>javac H2jdbcDeleteDemo.java 
\>java H2jdbcDeleteDemo

Приведенная выше команда производит следующий вывод.