База данных Derby: Рукавицы за поясом
«Ищет рукавицы, а они за поясом», — говорят про любителей усложнять себе жизнь. Так и с базами данных. Каких только Java-программист не перепробует: MySQL, MS-SQL, PostgreSQL, Oracle, SQLite… Для всех них имеются JDBC-драйвера, но ведь нужно установить еще сам движок БД, а это не всегда просто. Между тем в стандартный комплект JDK входит база данных Apache Derby, вполне пригодная для большинства целей. По крайней мере альтернативой SQLite ее вполне можно считать. Только SQLite скачивать и устанавливать надо (да и с JDBC там не всё просто), а Derby есть везде, где есть JDK.
Не углубляясь в тонкости, просто приведу фрагмент документации, переведя основной текст на русский.
Входим в каталог, где лежит Derby:
Запускаем консоль управления:
Далее — обычная работа с SQL, за исключением первой строки, в которой, впрочем, нет ничего непонятного:
В отличие от SQLite, Derby может работать не только в embed-режиме, но и в серверном, в т.ч. по сети. Естественно, есть к ней JDBC-драйвера, причем опять-таки загружать их не нужно, уже входят в комплект JDK.
Из недостатков — неполная (но вполне достаточная) поддержка стандарта SQL. Например, такую строку как
программа не обработала (из-за «IF EXISTS»).
Не углубляясь в тонкости, просто приведу фрагмент документации, переведя основной текст на русский.
Входим в каталог, где лежит Derby:
cd $JDK_HOME/db/lib
Запускаем консоль управления:
java -jar derbyrun.jar ij
Далее — обычная работа с SQL, за исключением первой строки, в которой, впрочем, нет ничего непонятного:
CONNECT 'jdbc : derby : firstdb ; create=true';
# пробелы рядом с двоеточиями не нужны, это защита от смайликов.
CREATE TABLE FIRSTTABLE
(ID INT PRIMARY KEY,
NAME VARCHAR(12));
0 rows inserted/updated/deleted
INSERT INTO FIRSTTABLE VALUES
(10,'TEN'),(20,'TWENTY'),(30,'THIRTY');
3 rows inserted/updated/deleted
SELECT * FROM FIRSTTABLE;
ID |NAME
------------------------
10 |TEN
20 |TWENTY
30 |THIRTY
3 rows selected
SELECT * FROM FIRSTTABLE
WHERE ID=20;
ID |NAME
------------------------
20 |TWENTY
1 row selected
exit;
В отличие от SQLite, Derby может работать не только в embed-режиме, но и в серверном, в т.ч. по сети. Естественно, есть к ней JDBC-драйвера, причем опять-таки загружать их не нужно, уже входят в комплект JDK.
Из недостатков — неполная (но вполне достаточная) поддержка стандарта SQL. Например, такую строку как
DROP IF EXISTS TABLE ...
программа не обработала (из-за «IF EXISTS»).
Комментарии (3)
RSS свернуть / развернутьMarkony
yababay
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.