Usar a biblioteca do cliente Java para a API de dados do RDS - Amazon Aurora

Usar a biblioteca do cliente Java para a API de dados do RDS

É possível baixar e usar uma biblioteca do cliente Java para a API de dados do RDS (API de dados). Essa biblioteca do cliente Java fornece uma forma alternativa de usar a API de dados. Usando essa biblioteca, é possível associar as classes no lado do cliente a solicitações e respostas da API de dados. Esse suporte ao mapeamento pode facilitar a integração com alguns tipos específicos de Java, como Date, Time e BigDecimal.

Baixar a biblioteca cliente Java para API de dados

A biblioteca de cliente Java da API de dados é de código aberto no GitHub no seguinte local:

https://github.com/awslabs/rds-data-api-client-library-java

É possível criar a biblioteca manualmente a partir de arquivos de origem, mas a melhor prática é consumir a biblioteca usando o gerenciamento de dependência do Apache Maven. Adicione a dependência a seguir ao arquivo POM Maven.

Para a versão 2.x, que é compatível com o AWS SDK 2.x, use o seguinte:

<dependency> <groupId>software.amazon.rdsdata</groupId> <artifactId>rds-data-api-client-library-java</artifactId> <version>2.0.0</version> </dependency>

Para a versão 1.x, que é compatível com o AWS SDK 1.x, use o seguinte:

<dependency> <groupId>software.amazon.rdsdata</groupId> <artifactId>rds-data-api-client-library-java</artifactId> <version>1.0.8</version> </dependency>

Exemplos de biblioteca cliente Java

É possível encontrar a seguir alguns exemplos comuns de uso da biblioteca de cliente Java da API de dados. Estes exemplos pressupõem que você tenha uma tabela accounts com duas colunas: accountId e name. Você também tem o seguinte objeto de transferência de dados (DTO).

public class Account { int accountId; String name; // getters and setters omitted }

A biblioteca de cliente permite passar DTOs como parâmetros de entrada. O exemplo a seguir mostra como DTOs do cliente são mapeados para conjuntos de parâmetros de entrada.

var account1 = new Account(1, "John"); var account2 = new Account(2, "Mary"); client.forSql("INSERT INTO accounts(accountId, name) VALUES(:accountId, :name)") .withParamSets(account1, account2) .execute();

Em alguns casos, é mais fácil trabalhar com valores simples como parâmetros de entrada. Para isso, siga a seguinte sintaxe.

client.forSql("INSERT INTO accounts(accountId, name) VALUES(:accountId, :name)") .withParameter("accountId", 3) .withParameter("name", "Zhang") .execute();

Veja a seguir outro exemplo que funciona com valores simples como parâmetros de entrada.

client.forSql("INSERT INTO accounts(accountId, name) VALUES(?, ?)", 4, "Carlos") .execute();

A biblioteca de cliente fornece mapeamento automático para DTOs quando o resultado é retornado. Os exemplos a seguir mostram como o resultado é mapeado para os DTOs.

List<Account> result = client.forSql("SELECT * FROM accounts") .execute() .mapToList(Account.class); Account result = client.forSql("SELECT * FROM accounts WHERE account_id = 1") .execute() .mapToSingle(Account.class);

Em vários casos, o conjunto de resultados do banco de dados inclui apenas um valor. Para simplificar a recuperação de tais resultados, a biblioteca de cliente oferece a API a seguir:

int numberOfAccounts = client.forSql("SELECT COUNT(*) FROM accounts") .execute() .singleValue(Integer.class);
nota

A função mapToList converte um conjunto de resultados do SQL em uma lista de objetos definida pelo usuário. Não é possível usar a instrução .withFormatRecordsAs(RecordsFormatType.JSON) em uma chamada de ExecuteStatement para a biblioteca do cliente Java, porque ela atende ao mesmo propósito. Para obter mais informações, consulte Processar resultados de consulta da API de dados do Amazon RDS no formato JSON.