Статьи

Вставка элементов DynamoDB с помощью DynamoDBMapper

В предыдущем посте мы использовали 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("[email protected]");
 
        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("[email protected]");
            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("[email protected]");
            users.add(user);
        }
         
        userMapperRepository.delete(users);
    }

Вы можете найти исходный код на GitHub