簡體   English   中英

如何將 java sdk 連接到 qldb?

[英]How do I connect the java sdk to qldb?

我試試這個教程

https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.java.step-2.html但我不明白如何使用 java sdk 連接到 qldb。

我只需要更新一個文檔,但是這個文檔太復雜了。 有誰有想法嗎? 或者假人的東西。

public final class ConnectToLedger {
    public static final Logger log = LoggerFactory.getLogger(ConnectToLedger.class);
    public static AWSCredentialsProvider credentialsProvider;
    public static String endpoint = null;
    public static String ledgerName = Constants.LEDGER_NAME;
    public static String region = null;

    public static PooledQldbDriver driver = createQldbDriver();

    private ConnectToLedger() { }

    /**
     * Create a pooled driver for creating sessions.
     *
     * @return The pooled driver for creating sessions.
     */
    public static PooledQldbDriver createQldbDriver() {
        AmazonQLDBSessionClientBuilder builder = AmazonQLDBSessionClientBuilder.standard();
        if (null != endpoint && null != region) {
            builder.setEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, region));
        }
        if (null != credentialsProvider) {
            builder.setCredentials(credentialsProvider);
        }
        return PooledQldbDriver.builder()
                .withLedger(ledgerName)
                .withRetryLimit(Constants.RETRY_LIMIT)
                .withSessionClientBuilder(builder)
                .build();
    }

    /**
     * Connect to a ledger through a {@link QldbDriver}.
     *
     * @return {@link QldbSession}.
     */
    public static QldbSession createQldbSession() {
        return driver.getSession();
    }

    public static void main(final String... args) {
        try (QldbSession qldbSession = createQldbSession()) {
            log.info("Listing table names ");
            for (String tableName : qldbSession.getTableNames()) {
                log.info(tableName);
            }
        } catch (QldbClientException e) {
            log.error("Unable to create session.", e);
        }
    }
}

很抱歉文檔很復雜。 這是您引用的代碼的最小版本,其中刪除了所有自定義和選項。 它假定您的環境已設置為使用正確的 AWS 區域和憑證。

    PooledQldbDriver driver = PooledQldbDriver.builder()
            .withLedger("my-ledger-name")
            .withSessionClientBuilder(AmazonQLDBSessionClientBuilder.standard())
            .build();

    try (QldbSession session = driver.getSession()) {
            session.execute("UPDATE my-table SET my-field = ?", < Ion value here >);
    }

我很樂意為您提供進一步的幫助,但是您的問題目前並沒有說明您在哪里卡住了。 例如,您是否嘗試運行上述代碼,如果是,您是否收到錯誤消息? 如果您使用更多信息更新您的問題或在評論中回復我的回答,我會回來查看。

所以我減少了代碼,因為該示例需要更多關於 QLDB sdk java 和 java.lang 的經驗。

 public QldbSession getQldbSession(String ledgerName) {
        final AmazonQLDBSessionClientBuilder builder = AmazonQLDBSessionClientBuilder.standard();
        if (null != endpoint && null != region) {
            builder.setEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, region));
        }
        if (null != credentialsProvider) {
            builder.setCredentials(credentialsProvider);
        }
        final PooledQldbDriver driver = PooledQldbDriver.builder().withLedger(ledgerName).withRetryLimit(4)
                .withSessionClientBuilder(builder).build();
        return  driver.getSession();
    }
 Result result = null;
        try  {
            final String query = "!query here¡";
            final IonObjectMapper MAPPER = new IonValueMapper(IonSystemBuilder.standard().build());
            final List<IonValue> parameters = new ArrayList<>();
            parameters.add(MAPPER.writeValueAsIonValue("parameter"));
            parameters.add(MAPPER.writeValueAsIonValue("parameter"));
            parameters.add(MAPPER.writeValueAsIonValue("parameter"));
            result = qldbSession.execute(query, parameters);

        } catch (final QldbClientException e) {
            System.out.println("Unable to create session.");
        } catch (final IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM