QLDBDriver Amazon untuk Java - Tutorial mulai cepat - Database Buku Besar Amazon Quantum (AmazonQLDB)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

QLDBDriver Amazon untuk Java - Tutorial mulai cepat

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Dalam tutorial ini, Anda belajar cara mengatur aplikasi sederhana menggunakan versi terbaru QLDB driver Amazon untuk Java. Panduan ini mencakup langkah-langkah untuk menginstal driver dan contoh kode pendek dari operasi dasar create, read, update, dan delete (CRUD). Untuk contoh lebih mendalam yang menunjukkan operasi ini dalam aplikasi sampel lengkap, lihat. Tutorial Java

Prasyarat

Sebelum memulai, pastikan Anda melakukan hal berikut:

  1. Lengkapi Prasyarat untuk driver Java, jika Anda belum melakukannya. Ini termasuk mendaftar AWS, memberikan akses terprogram untuk pengembangan, dan menginstal lingkungan pengembangan terintegrasi Java ()IDE.

  2. Buat buku besar bernamaquick-start.

    Untuk mempelajari cara membuat buku besar, lihat Operasi dasar untuk QLDB buku besar Amazon atau Langkah 1: Buat buku besar baru di Memulai dengan konsol.

Langkah 1: Siapkan proyek Anda

Pertama, siapkan proyek Java Anda. Sebaiknya gunakan sistem manajemen ketergantungan Maven untuk tutorial ini.

catatan

Jika Anda menggunakan fitur IDE yang memiliki fitur untuk mengotomatiskan langkah-langkah penyiapan ini, Anda dapat langsung melakukannya. Langkah 2: Inisialisasi driver

  1. Buat folder untuk aplikasi Anda.

    $ mkdir myproject $ cd myproject
  2. Masukkan perintah berikut untuk menginisialisasi proyek Anda dari template Maven. Ganti project-package, project-name, dan maven-template dengan nilai-nilai Anda sendiri yang sesuai.

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

    Untuk maven-template, Anda dapat menggunakan template Maven dasar: maven-archetype-quickstart

  3. Untuk menambahkan QLDBdriver untuk Java sebagai dependensi proyek, navigasikan ke pom.xml file yang baru Anda buat dan tambahkan artefak berikut.

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

    Artefak ini secara otomatis menyertakan modul AWS SDK for Java 2.xinti, perpustakaan Amazon Ion, dan dependensi lain yang diperlukan. pom.xmlFile Anda sekarang akan terlihat mirip dengan yang berikut ini.

    <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. Buka file App.java.

    Kemudian, secara bertahap tambahkan contoh kode dalam langkah-langkah berikut untuk mencoba beberapa CRUD operasi dasar. Atau, Anda dapat melewati step-by-step tutorial dan menjalankan aplikasi lengkap.

Langkah 2: Inisialisasi driver

Inisialisasi instance driver yang terhubung ke buku besar bernama. quick-start Tambahkan kode berikut ke App.java file Anda.

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(); } }

Langkah 3: Buat tabel dan indeks

Contoh kode berikut menunjukkan bagaimana menjalankan CREATE TABLE dan CREATE INDEX pernyataan.

Dalam main metode ini, tambahkan kode berikut yang membuat tabel bernama People dan indeks untuk lastName bidang pada tabel itu. Indeks diperlukan untuk mengoptimalkan kinerja kueri dan membantu membatasi pengecualian konflik kontrol konkurensi (OCC) optimis.

// 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)"); });

Langkah 4: Masukkan dokumen

Contoh kode berikut menunjukkan bagaimana menjalankan INSERT pernyataan. QLDBmendukung bahasa kueri PartiQL SQL (kompatibel) dan format data Amazon Ion (superset dari). JSON

Tambahkan kode berikut yang menyisipkan dokumen ke dalam People tabel.

// 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); });

Contoh ini menggunakan tanda tanya (?) sebagai placeholder variabel untuk meneruskan informasi dokumen ke pernyataan. Saat Anda menggunakan placeholder, Anda harus melewati nilai tipe. IonValue

Tip

Untuk menyisipkan beberapa dokumen dengan menggunakan satu INSERT pernyataan, Anda dapat meneruskan parameter tipe IonList(secara eksplisit dilemparkan sebagai anIonValue) ke pernyataan sebagai berikut.

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

Anda tidak melampirkan variabel placeholder (?) dalam tanda kurung sudut ganda (<<...>>) saat melewati sebuah. IonList Dalam pernyataan PartiQL manual, tanda kurung sudut ganda menunjukkan koleksi tidak berurutan yang dikenal sebagai tas.

Langkah 5: Kueri dokumen

Contoh kode berikut menunjukkan bagaimana menjalankan SELECT pernyataan.

Tambahkan kode berikut yang menanyakan dokumen dari People tabel.

// 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 });

Langkah 6: Perbarui dokumen

Contoh kode berikut menunjukkan bagaimana menjalankan UPDATE pernyataan.

  1. Tambahkan kode berikut yang memperbarui dokumen dalam People tabel dengan memperbarui age ke42.

    // 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. Kueri dokumen lagi untuk melihat nilai yang diperbarui.

    // 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. Gunakan Maven atau Anda IDE untuk mengkompilasi dan menjalankan file. App.java

Menjalankan aplikasi lengkap

Contoh kode berikut adalah versi lengkap App.java aplikasi. Alih-alih melakukan langkah-langkah sebelumnya satu per satu, Anda juga dapat menyalin dan menjalankan contoh kode ini dari awal hingga akhir. Aplikasi ini menunjukkan beberapa CRUD operasi dasar pada buku besar bernama. quick-start

catatan

Sebelum Anda menjalankan kode ini, pastikan bahwa Anda belum memiliki tabel aktif bernama People dalam quick-start buku besar.

Di baris pertama, ganti project-package dengan groupId nilai yang Anda gunakan untuk perintah Maven di. Langkah 1: Siapkan proyek Anda

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 }); } }

Gunakan Maven atau Anda IDE untuk mengkompilasi dan menjalankan file. App.java