dynamodb java_使用Java更新DynamoDB项

dynamodb java

在上一篇文章中,我们继续使用Java将项目插入DynamoDB。 DynamoDB还支持更新项目。

我们将使用Login表获取更新示例。
发布更新时,必须指定要更新的项目的主键。

public void updateName(String email,String fullName) {Map<String,AttributeValue> attributeValues = new HashMap<>();attributeValues.put("email",new AttributeValue().withS(email));attributeValues.put("fullname",new AttributeValue().withS(fullName));UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(TABLE_NAME).addKeyEntry("email",new AttributeValue().withS(email)).addAttributeUpdatesEntry("fullname",new AttributeValueUpdate().withValue(new AttributeValue().withS(fullName)));UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);}

我们可以使用条件更新来处理更高级的语句。 有条件的更新可以在许多情况下为我们提供帮助,例如处理并发更新。

我们可以通过使用普通表达式来实现。

public void updateConditionallyWithExpression(String email,String fullName,String prefix) {Map<String, AttributeValue> key = new HashMap<>();key.put("email", new AttributeValue().withS(email));Map<String, AttributeValue> attributeValues = new HashMap<>();attributeValues.put(":prefix", new AttributeValue().withS(prefix));attributeValues.put(":fullname", new AttributeValue().withS(fullName));UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(TABLE_NAME).withKey(key).withUpdateExpression("set fullname = :fullname").withConditionExpression("begins_with(fullname,:prefix)").withExpressionAttributeValues(attributeValues);UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);}

或通过指定属性。

public void updateConditionallyWithAttributeEntries(String email, String fullName, String prefix){Map<String,AttributeValue> key = new HashMap<>();key.put("email",new AttributeValue().withS(email));UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(TABLE_NAME).withKey(key).addAttributeUpdatesEntry("fullname",new AttributeValueUpdate().withValue(new AttributeValue().withS(fullName)).withAction(AttributeAction.PUT)).addExpectedEntry("fullname",new ExpectedAttributeValue().withValue(new AttributeValue().withS(prefix)).withComparisonOperator(ComparisonOperator.BEGINS_WITH));UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);}

另一个功能是原子计数器。 我们可以发布DynamoDB项目的更新并增加属性值。 我们将添加一个额外的字段,称为count。 另外,我们将添加另一个更新功能。 一旦调用,该函数将更新指定的字段,但也会增加计数器属性。 因此,counter属性将表示对特定项目执行了多少次更新。

public void addUpdateCounter(String email) {Map<String,AttributeValue> key = new HashMap<>();key.put("email",new AttributeValue().withS(email));UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(TABLE_NAME).withKey(key).addAttributeUpdatesEntry("counter",new AttributeValueUpdate().withValue(new AttributeValue().withN("0")).withAction(AttributeAction.PUT));UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);}public void updateAndIncreaseCounter(String email,String fullname) {Map<String,AttributeValue> key = new HashMap<>();key.put("email",new AttributeValue().withS(email));UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(TABLE_NAME).withKey(key).addAttributeUpdatesEntry("fullname",new AttributeValueUpdate().withValue(new AttributeValue().withS(fullname)).withAction(AttributeAction.PUT)).addAttributeUpdatesEntry("counter",new AttributeValueUpdate().withValue(new AttributeValue().withN("1")).withAction(AttributeAction.ADD));UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);}

您可以在github上找到源代码。

翻译自: https://www.javacodegeeks.com/2016/08/update-dynamodb-items-java.html

dynamodb java

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

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

相关文章

apache camel_使用Apache Camel进行负载平衡

apache camel在此示例中&#xff0c;我们将向您展示如何使用Apache Camel作为系统的负载平衡器。 在计算机世界中&#xff0c;负载平衡器是一种充当反向代理并在许多服务器之间分配网络或应用程序流量的设备。 负载平衡器用于增加容量&#xff08;并发用户&#xff09;和应用程…

lombok 自动使用_Lombok,自动值和不可变项

lombok 自动使用我喜欢布兰登&#xff08;Brandon &#xff09;在博客文章中比较Project Lombok &#xff0c; AutoValue和Immutables的建议 &#xff0c;而这篇文章试图做到这一点。 我已经简要概述了Project Lombok &#xff0c; AutoValue和Immutables &#xff0c;但是这篇…

邮箱批量登录接验证码_记一次莫名的需求(临时邮箱|企业邮箱)

目录&#xff1a;前言行情伪需求过程1.前戏2.买域名3.网易企业邮箱4.模糊的需求5.晚饭后6.临时邮箱16.临时邮箱27.域名版临时邮箱8.遇见问题8.1.DNSPOD8.2.换种思路拓展1.思路2.后续2.1.简单2.2.自建临时邮箱后话记一次需求不明的亏看完这篇文章你会学到&#xff1a; 免费企业邮…

【四】初步预测

import time from lxml import etree from collections import defaultdict import math import requests from matplotlib import pyplot as plt import pandas as pd import datetimed = defaultdict(list) listp = list()# 90+进球球队 setp = set()Allset = set()def httpg…

java 补充日期_Java 9对可选的补充

java 补充日期哇&#xff0c;人们真的对Java 9对Stream API的添加感兴趣。 想要更多&#xff1f; 让我们看一下…… 可选的 可选::流 无需解释&#xff1a; Stream<T> stream();想到的第一个词是&#xff1a; 终于 &#xff01; 最后&#xff0c;我们可以轻松地从可选…

msf如何升级_Kali linux 2016.2(Rolling)中的Metasploit如何更新与目录结构初步认识...

如何更新MSF1、Windows平台方法1&#xff1a;运行msfupdate.bat在msfconsole里执行命令svn update或者方法2&#xff1a;2、unix/linux平台方法1&#xff1a;运行msfupdate即可。方法2&#xff1a;(比较麻烦)安装subversion客户端(--with-ssl)&#xff0c;之后连接CVS server进…

【五】每个球队胜率统计

import time from lxml import etree from collections import defaultdict import math import requests from matplotlib import pyplot as plt import pandas as pd import datetimed = defaultdict(list) listp = list()# 近七天比赛所有球队 listall = list()# 近七天所有…

jaxb注解使用_使用JAXB的简介

jaxb注解使用我正在将一些依赖于Apache XMLBeans的模块迁移到JAXB。 这是令人兴奋和充满挑战的几天。 我想记下我遇到的一些重要事情&#xff0c;以供将来可能会发现有用的任何人使用。 首先&#xff0c;让我们来看一下设置用于JAXB代码生成的maven插件。 在撰写本文时&#x…

离散信号的抽取和内插例题_信号与系统例题分析

第1章 信号及其基本运算1.1 内容要点1.2 公式摘要1.3 例题分析例1.1 连续时间信号与波形例1.2 离散时间信号与波形例1.3 信号的积分运算例1.4 单位冲激信号的筛选特性例1.5 信号的平移例1.6 信号的求和、积分运算例1.7 卷积的两种计算方法例1.8 卷积的位移特性例1.9 卷积概念的…

dynamodb java_使用Java扫描DynamoDB项目

dynamodb java在之前的文章中&#xff0c;我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 。 除了发出查询之外&#xff0c;DynamoDB还提供扫描功能。 扫描所做的是获取您在DynamoDB表上可能拥有的所有项目。 因此&#xff0c;扫描不需要任何基…

【Python科学计算系列】行列式

1.二元线性方程组求解 import numpy as np a np.array([[3, -2], [2, 1]]) b np.array([12, 1]) d np.linalg.solve(a, b) print(d) 2.三阶行列式求值 import numpy as np a np.array([[1, 2, -4], [-2, 2, 1], [-3, 4, -2]]) d np.linalg.det(a) print(d) 3.行列式的余…

python写的hadoop实战_Hadoop实战

Hadoop实战1 Hadoop简介1.1 什么是Hadoop1.1.1 Hadoop概述1.1.2 Hadoop的历史1.1.3 Hadoop的功能与作用1.1.4 Hadoop的优势1.1.5 Hadoop的应用现状和发展趋势1.2 Hadoop项目及其结构1.3 Hadoop的体系结构1.3.1 HDFS的体系结构1.3.2 MapReduce的体系结构1.4 Hadoop与分布式开发1…

mfc 弹簧_弹簧活性样品

mfc 弹簧Spring-Reactive旨在为基于Spring的项目带来响应式编程支持 &#xff0c;并且有望在Spring 5的时间表中提供。 我的意图是使用此模型为REST端点行使一些非常基本的签名。 在继续之前&#xff0c;请允许我确认整个样本完全基于塞巴斯蒂安德勒兹&#xff08;SbastienDel…

【Python科学计算系列】矩阵

1.矩阵的幂计算&#xff08;设计思想&#xff1a;递归&#xff09; #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np def matrixPow(Matrix,n):if(type(Matrix)list):Matrixnp.array(Matrix)if(n1):return Matrixelse:return np.matmul(Matrix,matrixPow(…

layui按钮展开、_layui可折叠的组织架构树形图

layui.config({base: module/}).extend({treetable: treetable-lay/treetable}).use([layer, table, treetable], function () {var $ layui.jquery;var table layui.table;var layer layui.layer;var treetable layui.treetable;// 渲染表格var renderTable function () …

swarm 本地管理远程_带有WildFly Swarm的远程JMS

swarm 本地管理远程我再次在博客中谈论WildFly群&#xff1f; 简短的版本是&#xff1a;我需要对远程JMS访问进行测试&#xff0c;并且拒绝设置复杂的功能&#xff08;如完整的应用程序服务器&#xff09;。 这个想法是要有一个简单的WildFly Swarm应用程序&#xff0c;该应用程…

python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法

其实在Python中可以用来连接PostgreSQL的模块很多&#xff0c;这里比较推荐psycopg2。psycopg2安装起来非常的简单(pip install psycopg2)&#xff0c;这里主要重点介绍下如何使用。安装psycopg2模块&#xff1a;怎么验证是否已经安装过psycopy2?编写上面代码&#xff0c;运行…

java ee7帮助文档_帮助推动Java EE向前发展

java ee7帮助文档如果您还记得我写的题为《 Java EE 8&#xff1a;当前状态是什么》的文章 &#xff0c;很明显&#xff0c;Java EE的发展无疑在过去几个月中有所放缓。 肯定有一些Java EE下的JSR具有比其他JSR更多的活动&#xff0c;但是自JavaOne 2015以来&#xff0c;整个Ja…

【数论系列】集合

1.集合&#xff1a;我们把研究对象统称为元素&#xff0c;把一些元素组成的的总体叫作集合。 集合满足三个特性&#xff0c;即 确定性 &#xff0c; 无序性&#xff0c; 互异性 gather [1, 2, 3, 4, 5, 6] 2. 元素与集合的关系&#xff0c;只有&#xff08;属于&#xff09…

java解码_Java数组已排序解码

java解码排序是我们在计算机科学中学习的第一个算法。 排序是一个非常有趣的领域&#xff0c;它有大约20多种算法&#xff0c;而且总是很难确定哪种算法最好。 排序算法的效率是根据占用的时间和所需的空间来衡量的。 一些时间气泡排序是最好的&#xff0c;因为它没有空间需求&…