[JAVA] Verwendung von OrientJS und OrientDB zusammen

In diesem Tutorial werden wir ** OrientDB ** auf ** Alibaba Cloud ** einrichten und untersuchen, wie OrientJS mit ** OrientDB ** verwendet wird.

Voraussetzungen

Dieses Tutorial ist von mittlerem Schwierigkeitsgrad. Daher erfordert dieses Tutorial einige relevante Hintergrundkenntnisse. Es ist auch eine gute Idee, einige Einstellungen vorzunehmen, bevor Sie mit diesem Tutorial fortfahren. Insbesondere benötigen Sie Folgendes:

  1. Funktionen der Linux-Befehlszeilenschnittstelle Allgemeines Verständnis von.
  2. Allgemeines Verständnis der [ECS Security Group] von Alibaba Cloud (https://www.alibabacloud.com/help/doc-detail/25387.htm?spm=a2c65.11461447.0.0.4e462b3eZyH0hD). 3, Java (speziell 1.7 oder höher) wird installiert, und zugehörige Umgebungsvariablen werden ebenfalls festgelegt. Sein. 4, Allgemeines Verständnis von JavaScript.

Installieren von OrientDB auf Alibaba Cloud ECS

Der erste Schritt in diesem Lernprogramm besteht darin, eine Alibaba Cloud Elastic Compute Service (ECS) -Instanz (https: //www.alibabacloud) zu erstellen. com / help / ja / doc-detail / 25424.htm # task_zjx_p1f_5db) Muss sein. In diesem Tutorial installieren Sie Ubuntu und erstellen eine ECS-Instanz mit einem Ein-Kern-Prozessor und 512 MB Speicher. Verwenden Sie dann SSH oder melden Sie sich über die Alibaba Cloud-Konsole bei der Instanz an. Wenn Sie noch nicht wissen, wie das geht, lesen Sie dieses Handbuch (https://www.alibabacloud.com/help/ja/doc-detail/25425.htm).

Als nächstes müssen Sie das entsprechende Binärpaket installieren. Laden Sie zunächst die neueste stabile Version von [OrientDB] herunter (https://orientdb.com/orientdb-enterprise/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD). Verwenden Sie alternativ anstelle des manuellen Herunterladens von der Website den folgenden Befehl, um OrientDB [3.0.21] herunterzuladen (https://orientdb.com/download-previous/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD). Sie können es auch versuchen.

curl  https://s3.us-east-2.amazonaws.com/orientdb3/releases/3.0.21/orientdb-3.0.21.tar.gz

Wenn der Download abgeschlossen ist, finden Sie eine Zip-Datei mit dem Namen "orientdb-3.0.21.tar.gz" in dem Verzeichnis, in dem Sie den Befehl curl zum ersten Mal eingegeben haben. Entpacken Sie dann den Inhalt der Zip-Datei und wechseln Sie in das entsprechende Verzeichnis unter der Umgebungsvariablen "ORIENTDB_HOME". Die entsprechenden Befehle gemäß der aktuellen Version lauten wie folgt.

--tar -xvzf orientdb-3.0.21.tar.gz: Entpacken Sie den Ordner. --cp -r orientdb-3.0.21 / opt: Dient zum Kopieren des gesamten Ordners in das Verzeichnis / opt. Der Inhalt von "/ etc / environment" ist wie folgt.

JAVA_HOME=/usr/lib/jvm/java-8-oracle
ORIENTDB_HOME=/opt/orientdb-3.0.21
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games :$ORIENTDB_HOME/bin" 

Wenn Sie Java 1.7 oder höher installiert haben, was eine Voraussetzung für dieses Lernprogramm ist, und Sie Ihrer von Ubuntu installierten Instanz, dh Ihrem neuen Instanzserver, Swap Space hinzugefügt haben und noch nicht installiert sind.

Hinweis: Nach dem Aktualisieren von OrientDB sollte diese Datei bei Bedarf bezogen werden, um die neue ausführbare OrientDB-Datei im Terminal verfügbar zu machen. Der dafür zu verwendende Befehl lautet: source / etc / environment.

Geben Sie nun anstelle von "ORIENTDB_DIR" den Speicherort des OrientDB-Verzeichnisses von "ORIENTDB_HOME" (natürlich "ORIENTDB_HOME") und den Systembenutzer ein, den Sie anstelle von "USER_YOU_WANT_ORIENTDB_RUN_WITH" verwenden möchten, und geben Sie "orientdb" ein. Sie müssen die sh`-Datei bearbeiten.

Wenn die OrientDB-Installation voll funktionsfähig ist, können Sie den OirentDB-Server mit dem folgenden Befehl steuern:

--orientdb.sh status: Wird verwendet, um zu überprüfen, ob der Server ausgeführt wird. --orientdb.sh start: Dient zum Starten des OrientDB-Servers. --orientdb.sh stop: Dient zum Herunterfahren von OrientDB.

In den meisten Fällen ist eine sehr sichere Installation in einer Produktionsumgebung erforderlich. Dies bedeutet, dass Sie eine sichere OrientDB-Installation benötigen, damit kein Benutzer die Berechtigung hat, die Datenbank von sich aus zu starten oder zu stoppen. Daher können Sie in der Datei "OrientDB bin / orientdb.sh" den Administrator anstelle von "USER_YOU_WANT_ORIENTDB_RUN_WITH" eingeben. Dies bedeutet, dass Sie als Administrator der einzige Benutzer sind, der die vollen Rechte an den klügsten Befehlen von OriendDB besitzt.

Weitere Informationen hierzu finden Sie in der OrientDB-Dokumentation (http://orientdb.com/docs/3.0.x/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD).

Nachdem wir das alles getan haben, gehen wir weiter. Sie können die Installation testen, indem Sie den Befehl orientdb.sh start ausführen. Sie können auf das Portal, insbesondere auf OrientDB Studio, entweder über "http: // our_ecs_ip: 2480" oder "http: // localhost: 2480" zugreifen, wie im folgenden Screenshot gezeigt.

image.png

Klicken Sie hier, um eine Verbindung zu OrientDB herzustellen und auf das Dashboard zuzugreifen (https://orientdb.com/docs/2.0/orientdb.wiki/Security.html?spm=a2c65.11461447.0.0.4e462b3eZyH0hD#orientdb-server) Sie müssen den Benutzer am Ende der Datei $ ORIENTDB_HOME / config / oritdenb-server-config.xml definieren, wie in -security beschrieben.

Vergessen Sie nicht, die Instanzsicherheitsgruppe auf Port 2480 (OrientDB Studio-Port) festzulegen.

Hinweis: Muss für den externen Zugriff konfiguriert sein.

Unten sehen Sie die Ausgabe der Testinstanzeinstellungen.

image.png

OrientJs Einstellungen

Das OrientJS-Modul von OrientDB kann als offizieller OrientDB-Treiber für JavaScript-Projekte geschrieben werden. Es wird häufig von NodeJS-Entwicklern verwendet. Wie bei jedem anderen Paket benötigen Sie natürlich nur einen Befehl für die Installation mit node package manager. .. Führen Sie zur lokalen Installation den Befehl npm install orientjs aus.

Sobald OrientJS installiert und initialisiert ist, können Sie:

Initialisierung von OrientJS

Der erste Schritt, um OrientJS und OrientDB zusammenarbeiten zu lassen, besteht darin, die Server-API zu initialisieren. Dies ist wichtig, damit OreintJS mit der Server-API von OrientDB interagieren kann. Dies liegt daran, dass der Datenbankbenutzer mit dem OrientDB-Serverhost und seinem Port verbunden sein muss.

// Initializing the Server API
var server = OrientDB({
  host:       'localhost',
  port:       2424,
  username:   'admin',
  password:   'admin'
});

Hinweis: In diesem Fall verwenden wir "admin: admin" für Benutzeranmeldeinformationen. Dies muss jedoch in die entsprechenden Anmeldeinformationen geändert werden, die in der OrientDB-Konfigurationsdatei festgelegt sind.

Liste der Datenbanken

Der nächste Schritt in diesem Lernprogramm besteht darin, eine einzelne Abfrage mit OrientJS auszuführen, um alle bisher erstellten Datenbanken aufzulisten. Anschließend werden Name und Typ jeder Datenbank angezeigt, die normalerweise ein DB-Objekt zurückgeben würden.

// Databases listing
server.list()
  .then(list => {
    console.log(list.length + ' databases created so far');

    list.forEach(db => {
      console.log(db.name + ' - ' + db.type);
    });
  });

Datenbank erstellen

Fahren wir nun mit der Erstellung der Datenbank über die Server-API fort. Das ist relativ einfach. Sie können dies auch mit einem einzelnen Befehl tun, der einen Termin mit dem gerade erstellten Datenbankobjekt zurückgibt.

Das Folgende ist der Inhalt der OrientJs-Typen, die sich auf die Funktion Erstellen beziehen.

/**
 * Create a database with the given name / config.
 *
 * @param  config The database name or configuration object.
 * @promise {Db}                  The database instance
 */
create(name: string | DbConfig): Promise<Db>;

Es wird angegeben, dass der Erstellungsvorgang abgeschlossen wird, indem dieser Funktion ein Konfigurationsobjekt oder einfach der Datenbankname bereitgestellt wird. Im zweiten unten gezeigten Fall wird jedoch der Standardwert für das fehlende Feld ausgewählt. In diesem Abschnitt wird beschrieben, wie Sie eine Datenbank mithilfe von Konfigurationsobjekten erstellen.

// Creating a database
server.create({
    name:     'NewDatabase',
    type:     'graph',
    storage:  'plocal',
  }).then(dbCreated => {
    console.log('Database ' + dbCreated.name + ' created successfully');
  });

Vorhandene Datenbank verwenden

Nachdem die Datenbank erstellt wurde, können Sie die Instanz später abrufen, um weitere Schritte auszuführen. Verwenden Sie die folgende Methode, um eine Instanz der Datenbank zu initialisieren.

var db = server.use('NewDatabase');

Ab Version 2.1.11 können Sie auch die ODatabase-Klasse verwenden, um die Server-API zu initialisieren und sofort eine Verbindung zur Datenbank herzustellen. Die Syntax dafür lautet wie folgt:

var ODatabase = require('orientjs').ODatabase;
var db = new ODatabase({
  host:     'localhost',
  port:     2424,
  username: 'admin',
  password: 'admin',
  name:     'NewDatabase'
});

console.log('Connected to: ' + db.name);

API aufzeichnen

Sobald die Datenbankinstanz initialisiert ist, können die gespeicherten Datensätze, dh die in der Datenbank gespeicherten Informationen, mithilfe der Datensatz-ID (RID) () der Datenbank abgerufen und bearbeitet werden.

Hinweis: Die Datensatz-ID ist ein eindeutiger Wert, sodass Sie kein weiteres Feld erstellen müssen, das auf den Primärschlüssel verweist, wie dies in einer typischen relationalen SQL-Datenbank der Fall wäre.

Die Syntax der Datensatz-ID lautet wie folgt. Es wird # <Cluster>: <Position>. Für diesen Code

--cluster: Funktioniert als Cluster-ID. Dies verweist direkt auf den Clusterdatensatz, zu dem der Cluster gehört. Ein positiver Wert für diesen Parameter zeigt einen permanenten Datensatz an, und ein negativer Wert zeigt einen temporären Datensatz an. --position: Gibt die absolute Position des Datensatzes im Cluster an. Geben Sie hier die RID des Datensatzes an, um einen Datensatz zu erhalten.

db.record.get('#1:1')
  .then(
    function(article) {
        console.log('Loaded article:', article);
      }
  );

Nachdem wir die Aufzeichnung haben, werfen wir einen Blick auf einige der Operationen. Erstens ist der Löschvorgang. Im Allgemeinen ist das Löschen eines Datensatzes relativ einfach und kann mit dem folgenden Code durchgeführt werden:

db.record.delete('#1:1');

Als nächstes folgt der Aktualisierungsvorgang. Das Aktualisieren des Datensatzes ist etwas kompliziert, aber für mich immer noch in Ordnung. Sie können dies tun, nachdem die entsprechenden Daten, die Sie aktualisieren möchten, geladen wurden. Im Folgenden wird gezeigt, wie die Aktualisierungsfunktion implementiert wird.

db.record.get('#1:1')
  .then(function(article) {
    article.title = 'New Title';
    db.record.update(article)
      .then(function() {
        console.log("Article updated successfully");
      });
  });

Hinweis: Beachten Sie bei der Verwendung dieses Codes Folgendes:

- The an asterisk (#) prefix is required to recognize a Record ID.
- When creating a new record, OrientDB selects the cluster to store it using a configurable strategy, which can be the default strategy, the round-robin one, or a balanced or local strategy.
- Also, note that, in our example, #1:1 represents the RID. 

Klassen-API

Von der Datenbank abgeleitete Objekte werden speziell zum Zugreifen auf, Erstellen und Bearbeiten von Klassen verwendet. Insbesondere wenn wir "Klasse" sagen, meinen wir "db.class". Hier ist beispielsweise eine Methode zum Erstellen einer Klasse.

// Creating a new class(Article) using the Class API
var Article = db.class.create('Article');

So erhalten Sie eine vorhandene Klasse:

var Article = db.class.get('Article');

Beachten Sie, dass diese alle Rückgabeversprechen. Sobald das Versprechen gelöst ist, wird der Stil bewusster sein, Maßnahmen zu ergreifen. Wenden Sie den folgenden Code an, um eine Liste aller in der aktuell verbundenen Datenbank gespeicherten Klassen zurückzugeben.

// List all the database classes
db.class.list()
  .then(
    function(classes){
      console.log(classes.length + ' existing classes into ' + db.name);

      classes.forEach(cl => {
        console.log(cl.name);
      });
    }
  );

Als nächstes folgt die Erstellungsoperation. Das Erstellen von Klassen sollten Sie kennen, bevor Sie Ihre Datenbankstruktur vollständig entwerfen. Wir müssen die Klasse, mit der wir arbeiten, ordnungsgemäß laden, bevor wir Eigenschaften bearbeiten können.

Die Liste der Eigenschaften für die Artikelklasse lautet wie folgt:

db.class.get('Article').then(function(Article) {
  Article.property.list()
  .then(
    function(properties) {
       console.log(Article.name + ' has the properties: ', properties);
    }
 );
});

Die Erstellung von Immobilien erfolgt auf die gleiche Weise.

db.class.get('Article').then(function(Article) {
  Article.property.create([{
    name: 'title',
    type: 'String'
  },{
    name: 'content',
    type: 'String'
  }]).then(
    function(properties) {
      console.log("Successfully created properties");
    }
  );
});

Sie müssen nur eine Eigenschaft für die Klasse festlegen. Sie müssen nicht viele Eigenschaften festlegen. Lassen Sie uns nun einige Aktionen ausführen.

Löschen wir zunächst die Eigenschaft nach Namen.

db.class.get('Article').then(function(Article) {
  Article.property.drop('peroperty_to_drop').then(function(){
    console.log('Property deleted successfully.');
 });
});

Als nächstes ändern wir den Eigenschaftsnamen.

db.class.get('Article').then(function(Article) {
  Article.property.rename('old_name', 'new_name').then(function(p) {
    console.log('Property renamed successfully');
 });
});

Weitere Informationen zur Klassen-API finden Sie in diesem Dokument (https://orientdb.com/docs/last/OrientJS-Class-Classes.html?spm=a2c65.11461447.0.0.4e462b3eZyH0hD).

Abfrage in OrientDB

Abfragen sind eine der wichtigsten Operationen, die das Datenbankmodul zur besseren Verwaltung Ihrer Daten bereitstellt. Mit OrientDB können Sie auf zwei Arten abfragen. Geben Sie die SQL-Anforderung entweder direkt aus oder verwenden Sie Query Builder, um die Abfrage implizit in NodeJs zu erstellen. ist.

// Find articles viewed 200 times
var numberViews = 200;
db.query(
   'SELECT title, content FROM Article '
   + 'WHERE number_views = :numberViews,
   { params: { numberViews: numberViews, } }
).then(function(articles) {
   console.log(articles);
});

Die obige Abfrage sucht nach einem Artikel, der 200 Mal angesehen wurde. Diese Abfrage ist relativ einfach auszuführen. Eine Möglichkeit, diese Möglichkeit zu nutzen, um Anweisungen an die Engine zu senden, besteht darin, eine interessantere SQL-Syntax mit Operatoren wie AND, OR, LIKE zu verwenden. Diese Möglichkeit (einfacher), eine parametrisierte Anforderung zu verwenden, anstatt die Anforderungssubstrings und -parameter zu verketten, um die SQL-Zeichenfolge vollständig zu erstellen. Weitere Informationen zur SQL-Syntax von OrientDB finden Sie hier.

Anstatt eine vollständige SQL-Abfrage zu schreiben, können Sie stattdessen den Query Builder verwenden. Mit dem Abfrage-Generator (https://querybuilder.js.org/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD) können Sie bestimmte Methoden aufrufen, die intern über Datenbank-API-Aktionen abgefragt werden. Machen. Hier führen wir im Query Builder dieselbe Abfrage aus wie in SQL.

var numberViews = 200;
var query = db.select('title, content').from('Article')
  .where({ "number_views": numberViews })
  .all();

Informationen zur Veranstaltung

In OrientDB fungieren Ereignisse als Rückrufmethoden und können am Ende oder am Anfang einer Abfrage ausgeführt werden. Ereignisse sind nützlich für das Debuggen von Abfragen und zum Ausführen spezieller Aufgaben wie Protokollieren, Profilieren und Koordinieren von Daten. Das Ereignis hängt von der Datenbank ab. Das heißt, jedes Ereignis ist an eine einzelne Datenbank angehängt, und Sie müssen die Datenbank-API verwenden, um es zu erstellen. Wenn Sie diese API verwenden möchten, verwenden Sie die Funktion db.on (). Im folgenden Beispiel wird das Ereignis "BeginQuery" verwendet, um alle an den OrientDB-Server gesendeten Abfragen zu protokollieren. (Sie können auch endQuery verwenden, um die Abfrage zu beenden).

db.on("beginQuery", function(queryObj) {
  console.log('DEBUG: ', queryObj);
});

Fazit

In diesem Tutorial haben wir gesehen, wie OrientDB auf einer Alibaba Cloud ECS-Instanz eingerichtet wird, aber wir haben auch untersucht, wie OrientJS mit OrientDB verwendet wird.

Recommended Posts

Verwendung von OrientJS und OrientDB zusammen
Verwendung von @Builder und @NoArgsConstructor zusammen
Verwendung von StringBurrer und Arrays.toString.
Verwendung von EventBus3 und ThreadMode
Wie man Gleichheit und Gleichheit benutzt (wie man Gleichheit benutzt)
So richten Sie kapt ein und verwenden es
Verwendung von Teilzeichenfolgen und Substratmethoden
Verwendung von Map
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Verwendung von collection_select
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
Verwendung von MapStruct
Verwendung von TreeSet
[Verwendung des Etiketts]
Wie man Identität benutzt
Wie man Hash benutzt
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwendung von Map
[Java] Verwendung der FileReader-Klasse und der BufferedReader-Klasse
[Ruby] Verwendung der gsub-Methode und der sub-Methode
Verwendung von Segmented Control und zu notierenden Punkten
Verwendung der Scope- und Pass-Verarbeitung (Servist)
[Java] Verwendung der Kalenderklasse und der Datumsklasse
Verwendung der Ketten-API
[Rails] Verwendung von Enum
Verwendung von Java Optional
Verwendung von JUnit (Anfänger)
Verwendung von Ruby return
[Rails] Verwendung von Enum
Verwendung von @Builder (Lombok)
Verwendung der Java-Klasse
Wie man Big Decimal benutzt
[Java] Verwendung von removeAll ()
Verwendung von String [] args
Verwendung von Rails Join
Verwendung von Java Map
Ruby: Wie man Cookies benutzt
Verwendung von abhängigen :: zerstören
Verwendung von Eclipse Debug_Shell
Verwendung von Apache POI
[Rails] Verwendung der Validierung
Verwendung von Java-Variablen
[Rails] So verwenden Sie authenticate_user!