Skip to content

A DMV based example application which demonstrates best-practices for using QLDB & the QLDB Driver for Java.

License

Notifications You must be signed in to change notification settings

aws-samples/amazon-qldb-dmv-sample-java

Amazon QLDB Java DMV Sample App

license AWS Provider

The samples in this project demonstrate several uses of Amazon QLDB.

For our tutorial, see Java and Amazon QLDB.

Requirements

Basic Configuration

See Accessing Amazon QLDB for information on connecting to AWS.

See Setting Region page for more information on using the AWS SDK for Java. You will need to set a region before running the sample code.

Java 8 and Gradle

The examples are written in Java 8 using the Gradle build tool. Java 8 must be installed to build the examples, however the Gradle wrapper is bundled in the project and does not need to be installed. Please see the link below for more detail to install Java 8 and information on Gradle:

Running the Sample code

The sample code creates a ledger with tables and indexes, and inserts some documents into those tables, among other things. Each of the examples in this project can be run in the following way:

Windows:

gradlew run -Dtutorial=CreateLedger

Unix:

./gradlew run -Dtutorial=CreateLedger

The above example will build the CreateLedger class with the necessary dependencies and create a ledger named: vehicle-registration. You may run other examples after creating a ledger.

Samples

Below is a list of the sample applications included in this repository with the recommended order of execution.

Setting up the test ledger

  • CreateLedger
  • ListLedgers
  • DescribeLedger
  • ConnectToLedger
  • CreateTable
  • CreateIndex
  • ConnectToLedger: Run it again to see the created tables.
  • InsertDocument
  • ScanTable

Transaction management, PartiQL queries examples and History

  • AddSecondaryOwner
  • DeregisterDriversLicense
  • FindVehicles
  • RegisterDriversLicense
  • RenewDriversLicense
  • TransferVehicleOwnership
  • DeregisterDriversLicense
  • QueryHistory
  • InsertIonTypes

Exporting data

  • ExportJournal

  • ListJournalExports

  • DescribeJournalExport

    Note: To execute this test, you need to pass the ExportId that will be in the output of ListJournalExports. You can execute the test like this:

    ./gradlew run -Dtutorial=DescribeJournalExport --args="<Export Id obtained from the output of ListJournalExports>"	

Verifying data

  • GetRevision
  • GetDigest
  • GetBlock
  • ValidateQldbHashChain

Other Ledger management operations

  • TagResource
  • DeletionProtection
  • DeleteLedger

Documentation

Javadoc is used for documentation. You can generate HTML locally with the following:

mvn site

It will generate the Javadoc for public members (defined in ) using the given stylesheet (defined in ), and with an help page (default value for nohelp is true).

mvn javadoc:javadoc

It will generate the Javadoc for private members (defined in ) using the stylesheet (defined in ), and with no help page (defined in ).

Please see Javadoc usage.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the Apache 2.0 license.