QLDBDriver Amazon per Java — Tutorial di avvio rapido - Database Amazon Quantum Ledger (Amazon) QLDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

QLDBDriver Amazon per Java — Tutorial di avvio rapido

Importante

Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto il 31/07/2025. Per ulteriori dettagli, consulta Migrare un Amazon QLDB Ledger ad Amazon Aurora Postgre. SQL

In questo tutorial, imparerai come configurare una semplice applicazione utilizzando l'ultima versione del QLDB driver Amazon per Java. Questa guida include i passaggi per l'installazione del driver e brevi esempi in codice delle operazioni di base di creazione, lettura, aggiornamento ed eliminazione (CRUD). Per esempi più approfonditi che illustrano queste operazioni in un'applicazione di esempio completa, consultate ilTutorial su Java.

Prerequisiti

Prima di iniziare, assicurati di fare quanto segue:

  1. Completa il driver Prerequisiti per il Java, se non l'hai già fatto. Ciò include la registrazione AWS, la concessione dell'accesso programmatico per lo sviluppo e l'installazione di un ambiente di sviluppo integrato Java ()IDE.

  2. Crea un libro mastro denominato. quick-start

    Per informazioni su come creare un registro, consulta Operazioni di base per Amazon QLDB Ledger o Fase 1: Creare un nuovo libro contabile in Guida introduttiva alla console.

Fase 1: Configurazione del progetto

Innanzitutto, configura il tuo progetto Java. Ti consigliamo di utilizzare il sistema di gestione delle dipendenze Maven per questo tutorial.

Nota

Se usi un programma IDE che dispone di funzionalità per automatizzare questi passaggi di configurazione, puoi passare direttamente a. Fase 2: Inizializzare il driver

  1. Crea una cartella per la tua applicazione.

    $ mkdir myproject $ cd myproject
  2. Inserisci il seguente comando per inizializzare il tuo progetto da un modello Maven. Replace (Sostituisci) project-package, project-namee maven-template con i tuoi valori, se del caso.

    $ mvn archetype:generate -DgroupId=project-package \ -DartifactId=project-name \ -DarchetypeArtifactId=maven-template \ -DinteractiveMode=false

    In maven-template, puoi usare il modello Maven di base: maven-archetype-quickstart

  3. Per aggiungere il QLDBdriver per Java come dipendenza del progetto, vai al pom.xml file appena creato e aggiungi il seguente artefatto.

    <dependency> <groupId>software.amazon.qldb</groupId> <artifactId>amazon-qldb-driver-java</artifactId> <version>2.3.1</version> </dependency>

    Questo elemento include automaticamente il modulo AWS SDK for Java 2.xprincipale, le librerie Amazon Ion e altre dipendenze richieste. Il tuo pom.xml file dovrebbe ora avere un aspetto simile al seguente.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>software.amazon.qldb</groupId> <artifactId>qldb-quickstart</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>qldb-quickstart</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>software.amazon.qldb</groupId> <artifactId>amazon-qldb-driver-java</artifactId> <version>2.3.1</version> </dependency> </dependencies> </project>
  4. Apri il file App.java.

    Quindi, aggiungi in modo incrementale gli esempi di codice nei passaggi seguenti per provare alcune CRUD operazioni di base. In alternativa, puoi saltare il step-by-step tutorial ed eseguire invece l'applicazione completa.

Fase 2: Inizializzare il driver

Inizializza un'istanza del driver che si connette al registro denominato. quick-start Aggiungi il codice seguente al tuo App.java file.

import java.util.*; import com.amazon.ion.*; import com.amazon.ion.system.*; import software.amazon.awssdk.services.qldbsession.QldbSessionClient; import software.amazon.qldb.*; public final class App { public static IonSystem ionSys = IonSystemBuilder.standard().build(); public static QldbDriver qldbDriver; public static void main(final String... args) { System.out.println("Initializing the driver"); qldbDriver = QldbDriver.builder() .ledger("quick-start") .transactionRetryPolicy(RetryPolicy .builder() .maxRetries(3) .build()) .sessionClientBuilder(QldbSessionClient.builder()) .build(); } }

Fase 3: Creare una tabella e un indice

Il seguente esempio di codice mostra come eseguire le CREATE INDEX istruzioni CREATE TABLE e le istruzioni.

Nel main metodo, aggiungete il codice seguente che crea una tabella denominata People e un indice per il lastName campo di tale tabella. Gli indici sono necessari per ottimizzare le prestazioni delle query e aiutano a limitare le eccezioni di conflitto ottimistiche di controllo della concorrenza () OCC.

// Create a table and an index in the same transaction qldbDriver.execute(txn -> { System.out.println("Creating a table and an index"); txn.execute("CREATE TABLE People"); txn.execute("CREATE INDEX ON People(lastName)"); });

Fase 4: Inserimento di un documento

Il seguente esempio di codice mostra come eseguire un'INSERTistruzione. QLDBsupporta il linguaggio di interrogazione PartiQL (SQLcompatibile) e il formato dati Amazon Ion (superset di). JSON

Aggiungi il codice seguente che inserisce un documento nella tabella. People

// Insert a document qldbDriver.execute(txn -> { System.out.println("Inserting a document"); IonStruct person = ionSys.newEmptyStruct(); person.put("firstName").newString("John"); person.put("lastName").newString("Doe"); person.put("age").newInt(32); txn.execute("INSERT INTO People ?", person); });

Questo esempio utilizza un punto interrogativo (?) come segnaposto variabile per passare le informazioni del documento all'istruzione. Quando si utilizzano i segnaposto, è necessario passare un valore di tipo. IonValue

Suggerimento

Per inserire più documenti utilizzando una sola INSERT istruzione, potete passare un parametro di tipo IonList(espresso esplicitamente come unIonValue) all'istruzione nel modo seguente.

// people is an IonList explicitly cast as an IonValue txn.execute("INSERT INTO People ?", (IonValue) people);

Non racchiudete la variabile placeholder (?) tra parentesi angolari doppie () quando passate un. <<...>> IonList Nelle istruzioni PartiQL manuali, le parentesi doppie angolari indicano una raccolta non ordinata nota come borsa.

Fase 5: Interrogare il documento

Il seguente esempio di codice mostra come eseguire un'SELECTistruzione.

Aggiungere il codice seguente per interrogare un documento dalla People tabella.

// Query the document qldbDriver.execute(txn -> { System.out.println("Querying the table"); Result result = txn.execute("SELECT * FROM People WHERE lastName = ?", ionSys.newString("Doe")); IonStruct person = (IonStruct) result.iterator().next(); System.out.println(person.get("firstName")); // prints John System.out.println(person.get("lastName")); // prints Doe System.out.println(person.get("age")); // prints 32 });

Fase 6: Aggiornare il documento

Il seguente esempio di codice mostra come eseguire un'UPDATEistruzione.

  1. Aggiungere il codice seguente che aggiorna un documento nella People tabella aggiornandolo age a42.

    // Update the document qldbDriver.execute(txn -> { System.out.println("Updating the document"); final List<IonValue> parameters = new ArrayList<>(); parameters.add(ionSys.newInt(42)); parameters.add(ionSys.newString("Doe")); txn.execute("UPDATE People SET age = ? WHERE lastName = ?", parameters); });
  2. Interroga nuovamente il documento per vedere il valore aggiornato.

    // Query the updated document qldbDriver.execute(txn -> { System.out.println("Querying the table for the updated document"); Result result = txn.execute("SELECT * FROM People WHERE lastName = ?", ionSys.newString("Doe")); IonStruct person = (IonStruct) result.iterator().next(); System.out.println(person.get("firstName")); // prints John System.out.println(person.get("lastName")); // prints Doe System.out.println(person.get("age")); // prints 32 });
  3. Usa Maven o il tuo IDE per compilare ed eseguire il file. App.java

Esecuzione dell'applicazione completa

Il seguente esempio di codice è la versione completa dell'App.javaapplicazione. Invece di eseguire i passaggi precedenti singolarmente, potete anche copiare ed eseguire questo esempio di codice dall'inizio alla fine. Questa applicazione illustra alcune CRUD operazioni di base sul registro denominato. quick-start

Nota

Prima di eseguire questo codice, assicuratevi di non avere già una tabella attiva denominata People nel quick-start registro.

Nella prima riga, sostituisci project-package con il groupId valore che hai usato per il comando Maven in. Fase 1: Configurazione del progetto

package project-package; import java.util.*; import com.amazon.ion.*; import com.amazon.ion.system.*; import software.amazon.awssdk.services.qldbsession.QldbSessionClient; import software.amazon.qldb.*; public class App { public static IonSystem ionSys = IonSystemBuilder.standard().build(); public static QldbDriver qldbDriver; public static void main(final String... args) { System.out.println("Initializing the driver"); qldbDriver = QldbDriver.builder() .ledger("quick-start") .transactionRetryPolicy(RetryPolicy .builder() .maxRetries(3) .build()) .sessionClientBuilder(QldbSessionClient.builder()) .build(); // Create a table and an index in the same transaction qldbDriver.execute(txn -> { System.out.println("Creating a table and an index"); txn.execute("CREATE TABLE People"); txn.execute("CREATE INDEX ON People(lastName)"); }); // Insert a document qldbDriver.execute(txn -> { System.out.println("Inserting a document"); IonStruct person = ionSys.newEmptyStruct(); person.put("firstName").newString("John"); person.put("lastName").newString("Doe"); person.put("age").newInt(32); txn.execute("INSERT INTO People ?", person); }); // Query the document qldbDriver.execute(txn -> { System.out.println("Querying the table"); Result result = txn.execute("SELECT * FROM People WHERE lastName = ?", ionSys.newString("Doe")); IonStruct person = (IonStruct) result.iterator().next(); System.out.println(person.get("firstName")); // prints John System.out.println(person.get("lastName")); // prints Doe System.out.println(person.get("age")); // prints 32 }); // Update the document qldbDriver.execute(txn -> { System.out.println("Updating the document"); final List<IonValue> parameters = new ArrayList<>(); parameters.add(ionSys.newInt(42)); parameters.add(ionSys.newString("Doe")); txn.execute("UPDATE People SET age = ? WHERE lastName = ?", parameters); }); // Query the updated document qldbDriver.execute(txn -> { System.out.println("Querying the table for the updated document"); Result result = txn.execute("SELECT * FROM People WHERE lastName = ?", ionSys.newString("Doe")); IonStruct person = (IonStruct) result.iterator().next(); System.out.println(person.get("firstName")); // prints John System.out.println(person.get("lastName")); // prints Doe System.out.println(person.get("age")); // prints 42 }); } }

Usa Maven o il tuo IDE per compilare ed eseguire il file. App.java