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
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
Topik
Prasyarat
Sebelum memulai, pastikan Anda melakukan hal berikut:
-
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.
-
Buat buku besar bernama
quick-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
catatan
Jika Anda menggunakan fitur IDE yang memiliki fitur untuk mengotomatiskan langkah-langkah penyiapan ini, Anda dapat langsung melakukannya. Langkah 2: Inisialisasi driver
-
Buat folder untuk aplikasi Anda.
$
mkdir myproject
$
cd myproject
-
Masukkan perintah berikut untuk menginisialisasi proyek Anda dari template Maven. Ganti
project-package
,project-name
, danmaven-template
dengan nilai-nilai Anda sendiri yang sesuai.$
mvn archetype:generate -DgroupId=
project-package
\ -DartifactId=project-name
\ -DarchetypeArtifactId=maven-template
\ -DinteractiveMode=falseUntuk
maven-template
, Anda dapat menggunakan template Maven dasar:maven-archetype-quickstart
-
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.x
inti, perpustakaan Amazon Ion, dan dependensi lain yang diperlukan. pom.xml
File 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>
-
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.
-
Tambahkan kode berikut yang memperbarui dokumen dalam
People
tabel dengan memperbaruiage
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); });
-
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 });
-
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