База данных 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, как показано на следующем снимке экрана.
Как видно на приведенном выше снимке экрана, по умолчанию он будет использовать 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
Приведенная выше команда производит следующий вывод.