AWS下DynamoDB之java开发
本文章仅作为个人笔记
DynamoDB官网:https://us-west-2.console.aws.amazon.com/dynamodb/home
DynamoDB官方文档:https://aws.amazon.com/cn/documentation/dynamodb/
DynamoDB官方java使用文档:http://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/JavaDocumentAPICRUDExample.html
DynamoDB官方权限设置文档:https://docs.aws.amazon.com/zh_cn/toolkit-for-eclipse/v1/user-guide/setup-credentials.html
DynamoDB个人理解:DynamoDB为aws下一个NoSql数据库,用于处理简单key-value数据。DynamoDB也支持索引,目前一个表结构最多支持5个索引。
记住一定要在本地生成证书确保DynamoDB权限(~/.aws/credentials)(C:\Users\USERNAME\.aws\credentials)格式如下:
image.png另外在开发前,一定要在aws官网开通DynamoDB服务及创建相应的DynamoDB数据表.
DynamoDB使用(gradle项目):
1.在项目build.gradle文件的dependencies选项下添加(compile 'com.amazonaws:aws-java-sdk-dynamodb:1.11.172')依赖
2.AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();//获取DynamoDB连接(用于获取mapper及DynamoDB对象)
3.DynamoDBMapper mapper = new DynamoDBMapper(client);//获取Mapper(mapper可以非常方便,在使用最少代码的情况下对数据进行简单的增删改查)
4.DynamoDB dynamoDB = new DynamoDB(client);//获取DynamoDB对象(可用于获取Table对象操作单个表的复杂操作)
5.Table table = dynamoDB.getTable(TABL_NAME);//获取Table对象(对数据表进行复杂操作)
6.Index index= table.getIndex(INDEX_NAME);//获取索引对象(对数据进行索引查询)
7.编写数据表对应数据类型对象(如下是一个非常简单的DynamoDB数据表对象):
8.mapper.save(data);//保存数据
9.mapper.load(DATA.class, key,DynamoDBMapperConfig.ConsistentReads.CONSISTENT.config());//根据key获取数据并转换为相应数据对象
10.QuerySpec spec = new QuerySpec().withKeyConditionExpression("index = :indexMark").withValueMap(new ValueMap().withString(":indexMark", indexMark)).withMaxResultSize(MAX_RESULT);//创建查询对象
11.ItemCollection<QueryOutcome> items = index.query(spec);//根据index索引对象及spec查询对象获取查询结果,最后可以使用Iterator<Item> iter = items.iterator();遍历获取每个对象
12.最后数据库数据对象除了使用@DynamoDBTable及@DynamoDBHashKey外,还有@DynamoDBAttribute使用方法与其它的差不多,区别在于这个是用来修饰普通字段的,还有@DynamoDBIndexHashKey是用来修饰索引字段的。
13.最后附上个人aws简单demo的git地址 https://github.com/makai554892700/AWSDemo.git