使用DynamoDBMapper插入DynamoDB项目

在上一篇文章中,我们使用DynamoDBMapper来将DynamoDB表映射到Java对象。

插入时,我们的动作几乎相同,但是方式更方便。 为了插入项目,您要做的就是使用对象映射器持久化对象

在我们的例子中,我们将创建一个执行简单插入的User存储库。

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);}}

要坚持下去,我们只需要创建一个简单的对象。

@Testpublic void testInsertUser() {User user = new User();user.setRegisterDate(new Date().getTime());user.setFullName("John Doe");user.setEmail("john@doe.com");userMapperRepository.insert(user);}

同样使用DynamoDBMapper,我们可以进行批量插入或批量删除。 因此,我们将向存储库添加两个额外的方法。

public void insert(List<User> users) {dynamoDBMapper.batchWrite(users,new ArrayList<>());}public void delete(List<User> users) {dynamoDBMapper.batchDelete(users);}

批量添加(或删除)项目,仅需要传递包含定义键值的对象列表。

@Testpublic 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);}@Testpublic 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上找到源代码

翻译自: https://www.javacodegeeks.com/2016/09/insert-dynamodb-items-dynamodbmapper.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器,sqlserver

今早开机发现&#xff0c;打开SQL Server 2008 的 SQL Server Management Studio&#xff0c;输入sa的密码发现&#xff0c;无法登陆数据库&#xff1f;提示以下错误&#xff1a; “在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请…

matlab 与数据库操作

第一部分&#xff1a;读取数据其相关信息查看 1. 配置数据源 &#xff08;1&#xff09;.“控制面板”----“管理工具”——“数据源&#xff08;ODBC&#xff09;”——“添加”——“创建数据源名称和选择数据库文件”。具体操作见数据源配置&#xff1a; http://blog.c…

PHP05

php05 1、音乐案例删除部分 1&#xff09;通过执行某些PHP代码获取到指定的数据&#xff0c;填充到html的指定位置 accept属性也可以直接写扩展名,多个扩展名间用英文的逗号分隔 accept".lrc" 允许选中多个文件&#xff0c;文件域属性&#xff1a;multiple 直接写该属…

算术运算导致溢出_CPU的控制器与运算器

计算机基础方面的知识&#xff0c;对于一些非科班出身的同学来讲&#xff0c;一直是他们心中的痛&#xff0c;而对于科班出身的同学&#xff0c;很多同学在工作之后&#xff0c;也意识到自身所学知识的不足与欠缺&#xff0c;想回头补补基础知识。关于计算机基础的课程很多&…

Windows下,Netbeans使用C++的配置方法

如果尚未安装 NetBeans IDE&#xff0c;请转至http://www.netbeans.org/community/releases/&#xff0c;然后下载包含最近的 C/C 支持的 IDE 版本。 如果已安装 NetBeans IDE 但未包含 C/C 支持&#xff0c;请完成以下步骤为 IDE 添加 C/C 支持。 从主菜单中选择“工具”>“…

为了简单起见,Arquillian Chameleon

使用Arquillian时&#xff0c;您需要做的一件事就是定义要在哪个容器下执行所有测试。 这是通过在适配器的类路径中添加依赖项并取决于所使用的模式&#xff08;嵌入式&#xff0c;托管或远程&#xff09;来下载的来完成的。 手动安装应用程序服务器。 例如&#xff0c;当在嵌…

matlab 读取文件夹底下所有txt文件

读取matlab 文件夹底下所有的txt 文件包括子文件夹底下的文件。 dirsdir(H:\DCE); for i1:length(dirs); if (dirs(i).isdir && ~strcmp(dirs(i).name,.) && ~strcmp(dirs(i).name,..) ) str_path[H:\DCE\, dirs(i).name]; filedir([str_path,\*.txt]);…

BZOJ4856 JSOI2016 病毒感染 区间DP

传送门 原Word文档 题意&#xff1a;太长不给 这种题目一看就是区间DP 设$f_i$表示治愈了前$i$个村子的时候最少死了多少村民&#xff0c;又设前缀和为$sum_i$&#xff0c;通过枚举折返时最后经过的村子$j$&#xff0c;并且提前计算$i1$到$N$中死的村民数量&#xff0c;可以得到…

go get 的不再src目录中_Go 每日一库之 sqlc:根据 sql 生成代码

简介在 Go 语言中编写数据库操作代码真的非常痛苦&#xff01;database/sql标准库提供的都是比较底层的接口。我们需要编写大量重复的代码。大量的模板代码不仅写起来烦&#xff0c;而且还容易出错。有时候字段类型修改了一下&#xff0c;可能就需要改动很多地方&#xff1b;添…

查看linux服务器的系统信息

查看linux服务器的系统信息新接手了几台linux的服务器,第一步当然是要了解这些服务器的软硬件配置.现在就写出我这次用的一些命令.首先当然要取得机器的IP,用户名和密码(呵呵,不知道就找原来的管理员要哈)登陆之后,首先看到的就是机器的名称,一般提示符就有了,如[rootlocalhost…

Windows下更改MySQL数据库的存储位置

一.同一主机下位置的转移 在mysql安装完成后&#xff0c;要修改数据库存储的位置&#xff0c;比如从安装目录下的C:\Program Files\MySQL\MySQL Server 5.0\Data文件夹转移到D:\mySQLData文件夹。 1、在D:\下新建mySQLData文件夹 2、停止MySQL服务&#xff0c;将C:\Program Fil…

apk去除签名验证工具安卓版_App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!...

一、序在将 App 发布到市场之前&#xff0c;很重要的一个步骤就是为 APK 进行签名&#xff0c;大部分时候&#xff0c;这个操作隐藏在了打包的流程中&#xff0c;而不被我们注意到。签名的作用&#xff0c;除了证明 App 的所有权之外&#xff0c;还可以帮助 Android 市场和设备…

初入WEBOTS半个月来的一点总结

对于我这一个从十一假期结束后才刚刚接触webots的小白来说&#xff0c;webots简直就是一个噩梦。在这里记录一下噩梦的发展历程。 在最初安装webots时就遇到了麻烦。安装7.0.3总是出问题。程序找不到接入点。替换dll文件也没有用更新运行库也不行。最好索性重新买固态硬盘做了个…

skype 回放设备出现问题

最近用skype拨打电话换台电脑会出现“回放设备出现问题”&#xff0c;拨通号码后会自动跳掉无法拨通 一直更新声音驱动器&#xff0c;结果发现跟声卡驱动半毛钱关系都没有&#xff0c;是要插入耳麦。

sonar java_修复Sonar中常见的Java安全代码冲突

sonar java本文旨在向您展示如何快速修复最常见的Java安全代码冲突。 它假定您熟悉代码规则和违规的概念以及Sonar如何对其进行报告。 但是&#xff0c;如果您以前从未听过这些术语&#xff0c;则可以阅读Sonar Concepts或即将出版的有关Sonar的书 &#xff0c;以获取更详细的解…

linux服务器性能查看

################### cpu性能查看 ############################################################1、查看物理cpu个数&#xff1a;cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l2、查看每个物理cpu中的core个数&#xff1a;cat /proc/cpuinfo |grep "…

android sdk 安装_Appium+python自动化1-环境安装(上)

前言appium可以说是做app自动化测试最火的一个框架&#xff0c;它的主要优势是支持android和ios&#xff0c;另外脚本语言也是支持java和Python。小编擅长Python&#xff0c;所以接下来的教程是appiumpython的实例。学习appium最大的难处在于环境的安装&#xff0c;80%的人死于…

Mean

题目描述 NiroBC 是猫咪学堂一年级的新生&#xff0c;开学第一天&#xff0c;学堂组织了一场迎新会&#xff0c;在 迎新会上&#xff0c;猫咪们会互相赠送礼物。 一年级的新生共有 N 只猫咪&#xff0c;编号为 1 . . . N&#xff08;包括 NiroBC 自己&#xff09;&#xff0c;其…

如何开启mysql计划事件

首先在sql中查询计划事件的状态&#xff1a;SHOW VARIABLES LIKE event_scheduler如果返回的是off表示当前是关闭状态&#xff0c;如果是on当前已经开启了计划任务。在mysql程序的目录下找到my.ini文件&#xff0c;添加一个项&#xff1a;event_scheduler 1保存后重启mysql服务…

在Java等于方法中进行精确比较

多年来&#xff0c;我一直在处理旧版Java代码&#xff0c;因此遇到了微妙的逻辑和性能问题&#xff0c;这些问题可以追溯到不正确覆盖的Object.equals&#xff08;Object&#xff09;方法。 尽管“等于”方法背后的概念看似简单&#xff0c;但Josh Bloch在《 有效Java》中指出&…