В предыдущем посте мы использовали DynamoDBMapper для отображения таблиц DynamoDB в объекты Java.
Когда дело доходит до вставки, наши действия почти такие же, но с более удобным способом. Чтобы вставить элемент, все, что вам нужно сделать, это сохранить объект, используя маппер объекта.
В нашем случае мы создадим репозиторий User, который выполняет простую вставку.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.gkatzioura.dynamodb.mapper.repository;import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;import com.gkatzioura.dynamodb.mapper.entities.User;import java.util.ArrayList;import java.util.Date;import java.util.List;/** * Created by gkatzioura on 9/22/16. */public class UserMapperRepository { private DynamoDBMapper dynamoDBMapper; public UserMapperRepository(AmazonDynamoDB amazonDynamoDB) { dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB); } public void insert(User user) { dynamoDBMapper.save(user); }} |
Чтобы сохранить это, мы просто должны создать простой объект.
|
01
02
03
04
05
06
07
08
09
10
|
@Test public void testInsertUser() { User user = new User(); user.setRegisterDate(new Date().getTime()); user.setFullName("John Doe"); user.setEmail("john@doe.com"); userMapperRepository.insert(user); } |
Также с помощью DynamoDBMapper мы можем делать пакетные вставки или пакетные удаления. Поэтому мы добавим два дополнительных метода в хранилище.
|
1
2
3
4
5
6
7
8
|
public void insert(List<User> users) { dynamoDBMapper.batchWrite(users,new ArrayList<>()); } public void delete(List<User> users) { dynamoDBMapper.batchDelete(users); } |
Добавление элементов в пакетном режиме (или удаление) их просто требует передачи списка объектов, который содержит значения для определенных ключей.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
@Test public void testBatchUserInsert() { List<User> users = new ArrayList<>(); for(int i=0;i<10;i++) { String email = emailPrefix+i+"@doe.com"; User user = new User(); user.setRegisterDate(new Date().getTime()); user.setFullName("John Doe"); user.setEmail("john@doe.com"); users.add(user); } userMapperRepository.insert(users); } @Test public void testBatchDelete() { testBatchUserInsert(); List<User> users = new ArrayList<>(); for(int i=0;i<10;i++) { String email = emailPrefix+i+"@doe.com"; User user = new User(); user.setRegisterDate(new Date().getTime()); user.setFullName("John Doe"); user.setEmail("john@doe.com"); users.add(user); } userMapperRepository.delete(users); } |
Вы можете найти исходный код на GitHub
| Ссылка: | Вставьте элементы DynamoDB с помощью DynamoDBMapper от нашего партнера по JCG Эммануила Гкациоураса в блоге gkatzioura . |