Amazon DynamoDb使用说明

本文介绍了如何使用Amazon DynamoDB,包括设置Server Endpoint、IAM权限、IDEA集成、CRUD操作以及分页方法。强调了DynamoDB在NoSQL数据库中的特点和应用场景,并提供了示例代码和遇到问题的解决方案。
摘要由CSDN通过智能技术生成
学习参考资料链接
  1. [Server Endpoint][https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html] 设置

    比如我们的DynamoDb使用的区域是:
    在这里插入图片描述
    这里我们选用的是Amazon DynamoDB用的Endpoint
    在这里插入图片描述
    这里我使用的是dynamodb.us-west-2.amazonaws.com,协议选择的HTTP,Https走不通目前AWS中工程师没有给出具体理由;

见代码:

 static AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
            .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration
                    ("http://dynamodb.us-west-2.amazonaws.com", "us-west-2"))
            .build();
    static SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
  1. [IAM的设置][https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies.html]
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    把生成的credentials 放在这个目录(自己创建的)中:
    在这里插入图片描述
    【注】:若IDEA 版本必须是2018.3版以上的,

需要依赖的jar

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.431</version>
</dependency>

需要的plugin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 如上操作后即可使用IDEA对Amazon Db的操作;

  2. 相关的CRUD 操作;

    Amazon DynamoDB据我向AWS开发人员请教时了解到是没有封装类似于MongoDB的分页操作的,具体的分页操作可见[分页链接][https://www.talentica.com/blogs/dynamo-db-pagination/] 估计你也不会看;

    相关的DynamoDb SDK的文档[链接1][https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/document/DynamoDB.html] [链接2][https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html][链接3][https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html] [链接4][[https://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/DynamoDBMapper.CRUDExample1.html] [链接5][https://www.programcreek.com/java-api-examples/?api=com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper]可做参考,

    但是如上官方链接估计使用或多或少都是有问题的,具体的操作还得我提交的demo,上面都是可以跑通的;

  3. [解决 PKIX:unable to find valid certification path to requested target][http://www.ibloger.net/article/3024.html]

【注】如何在控制台创建表的时候,要注意如果使用排序健则用封装好的DynamoDbMapper只能插入数据,查询数据时跟AWS工程师调了半天也没有查出数据,查询的时候需要带上主键和排序键 才能查出,若是用原生的API查询出来是很苦逼的,代码如下:

Table table = dynamoDB.getTable(tableName);

System.out.println("--- "+tableName+" ---");
Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
key.put("id", new AttributeValue().withN(120+""));//主键  withN:表示传入的是数字
key.put("Title", new AttributeValue().withS("Book 120 Title"));//排序键 withS:表示传入的字符串
GetItemRequest getItemRequest = new GetItemRequest()
    .withTableName(tableName)
    .withKey(key);
GetItemResult result = client.getItem(getItemRequest);
System.out.println(result.getItem());

那如果看你这张表是否有排序键呢?如下图:
在这里插入图片描述
也可以:
在这里插入图片描述
重点是整理的如下Demo:

package com.tcl.amazondemo.DynamoDb;

import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.model.*;
import com.tcl.amazondemo.DynamoDb.Entity.Book;

import java.text.SimpleDateFormat;
import java.util.Arrays;

public class IotDynamoDb {
   

    static AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
            .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration
                    ("http://dynamodb.us-west-2.amazonaws.com", "us-west-2")<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值