Nicht nur JDK, sondern auch Glassfish, WebSphere, Apache Hive usw. Apache Derby hat den Eindruck, dass es häufig mit Java-bezogenen Tools gebündelt wird.
Leicht, eingebettet / Server, reines Java, so dass es für alle Zwecke verwendet werden kann Es ist eine Datenbank, die einfach zum Lernen verwendet werden kann.
Ein solches Derby-Konstruktionsverfahren (von der Installation bis zur Datenerstellung) ist zusammengefasst: Ich habe es aus der Idee heraus geschrieben, dass es möglich sein wird, es als eine Datenbank zu handhaben, die einfacher verwendet werden kann.
Für die Verwendung des mitgelieferten Derby ist keine Installation erforderlich. Wenn Sie die mitgelieferten Tools nicht installiert haben Wenn Sie es separat installieren möchten, laden Sie es bitte von der folgenden Seite herunter.
http://db.apache.org/derby/derby_downloads.html
Die neueste Version zum Zeitpunkt des Schreibens dieses Artikels war 10.13.1.1. Klicken Sie auf den Link für diese Version, um die Zip-Datei herunterzuladen. db-derby-10.13.1.1-bin.zip
Entpacken Sie die obige Datei. Das Speicherziel ist beliebig. In diesem Handbuch wurde es in das folgende Verzeichnis verschoben. C:\Tools\derby
Fügen Sie den Systemumgebungsvariablen Einstellungen für Derby hinzu. DERBY_HOME=C:\Tools\derby PATH = (weggelassen);% DERBY_HOME% \ bin
Starten Sie als Nächstes den in PATH angegebenen bin-Ordner an der Eingabeaufforderung.
:: derby.Erstellen Sie Eigenschaften und Benutzer/Legen Sie ein Passwort fest.
C:\Tools\derby\bin>type nul > derby.properties
C:\Tools\derby\bin>notepad derby.properties
Kopieren Sie den folgenden Inhalt in den Notizblock. Wenn Sie fertig sind, speichern und schließen Sie.
derby.properties
derby.authentication.provider=BUILTIN
derby.connection.requireAuthentication=true
derby.database.sqlAuthorization=true
derby.database.fullAccessUsers=admin
derby.database.readOnlyAccessUsers=guest
derby.user.admin=admin
derby.user.guest=guest
derby.connection.requireAuthentication
auf false.
Ich kann eine Datenbank erstellen, ohne derby.properties separat zu erstellen.
Später, als ich einen Benutzer einrichten oder aufwachen wollte, dachte ich, es wäre bequemer, ihn im Voraus zu erstellen, also schrieb ich ihn.::Erstellen Sie ein Verzeichnis zum Speichern der Datenbank
C:\Tools\derby\bin>md %DERBY_HOME%\dat
Nachdem Sie die Grundeinstellungen vorgenommen haben, ist es Zeit, die Datenbank zu erstellen.
Der Derby ij-Befehl wird hier weggelassen. Klicken Sie hier für Details → Java DB-Memo Sie können dies auch mit dem Hilfebefehl von ij überprüfen. Wenn Sie also interessiert sind, klicken Sie dort. Der Befehl ij hat jedoch unbedingt ein; (Semikolon) am Ende des Satzes. Seien Sie also von Anfang an vorsichtig. Selbst wenn Sie das; vergessen haben, können Sie den Befehl ausführen, indem Sie in der nächsten Zeile; drücken und die Eingabetaste drücken. Beeilen Sie sich also nicht.
Schreiben Sie dieses Mal die Befehle zum Erstellen der Datenbank, Tabelle und Daten in die SQL-Datei. Nehmen Sie den Stil der Ausführung der SQL-Datei mit dem Befehl ij.
database-create.sql
connect 'jdbc:derby:c:/Tools/derby/dat/test;user=admin;password=admin;create=true';
:: database-create.Wechseln Sie in das Verzeichnis, in dem SQL gespeichert ist
C:\Tools\derby\bin>cd D:\workspace\script
::Datenbank erstellen.
D:\workspace\script>ij.bat database-create.sql
Erstellen Sie als Nächstes eine Tabelle. Wenn in Derby TABLE vorhanden ist, gibt es keine Anweisung zum Ausführen von DROP. Daher muss eine Person dies beurteilen. Wenn Sie eine solche Funktion erstellen, wird sie natürlich gelöst, aber diesmal werden wir uns nicht damit befassen.
users-create.sql
connect 'jdbc:derby:c:/Tools/derby/dat/test;user=admin;password=admin';
MAXIMUMDISPLAYWIDTH 15;
--DROP TABLE users if needed
show tables in admin;
CREATE TABLE users (
id INT NOT NULL PRIMARY KEY
GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
login_id VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
user_name VARCHAR(20) NOT NULL,
birthday CHAR(8),
email VARCHAR(40) NOT NULL,
address VARCHAR(200),
credit_card_number CHAR(16),
authority_type CHAR(1) NOT NULL,
is_deleted CHAR(1) NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(20) NOT NULL
);
CREATE UNIQUE INDEX ui_users_01 ON users (
login_id
);
CREATE UNIQUE INDEX ui_users_02 ON users (
email
);
CREATE UNIQUE INDEX ui_users_03 ON users (
credit_card_number
);
show tables in admin;
describe users;
commit;
::Erstellen Sie eine Benutzertabelle
D:\workspace\script>ij.bat users-create.sql
Fügen Sie den Datensatz am Ende ein.
users-insert.sql
connect 'jdbc:derby:c:/Tools/derby/dat/test;user=admin;password=admin';
MAXIMUMDISPLAYWIDTH 15;
select * from users;
INSERT INTO users VALUES
(DEFAULT, 'sj', 'berkay', 'sercan', '20000318', '[email protected]',
'19 Mc Cabe Street', '1234567890123456', '1', '0', current_timestamp, current_timestamp, 'admin');
INSERT INTO users VALUES
(DEFAULT, 'br', 'ugur', 'oljay', '19980322', '[email protected]',
'19 Mc Cabe Street 2145', '1234567890123450', '1', '0', current_timestamp, current_timestamp, 'admin');
select * from users;
commit;
::Fügen Sie Daten in die Benutzertabelle ein.
D:\workspace\script>ij.bat users-insert.sql
Wie Sie sehen können, kann Derbys SQL in fast Standard-SQL geschrieben werden. Der Unterschied in DML besteht darin, dass es keine LIMIT-Klausel gibt (stattdessen wird die ROW_NUMBER-Funktion oder die OFFSET / FETCH-Klausel verwendet). Es wird nur "CASE-bedingter Ausdruck WHEN" unterstützt. ("CASE WHEN ~" kann nicht verwendet werden). Informationen zur Funktion finden Sie im Handbuch. Ich habe weder COALESCE noch REPLACE.
Java DB-Memo [developerWorks - Entwicklung mit Apache Derby](http://www.ibm.com/developerworks/jp/views/opensource/libraryview.jsp?search_by=Apache+Derby+%E3%82%92%E4%BD%BF % E7% 94% A8% E3% 81% 97% E3% 81% 9F% E9% 96% 8B% E7% 99% BA) Derby Reference Manual
Recommended Posts