В предыдущем посте мы использовали 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" ); 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" ); 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" ); users.add(user); } userMapperRepository.delete(users); } |
Вы можете найти исходный код на GitHub
Ссылка: | Вставьте элементы DynamoDB с помощью DynamoDBMapper от нашего партнера по JCG Эммануила Гкациоураса в блоге gkatzioura . |