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

dynamodb java_使用Java更新DynamoDB项相关推荐

  1. dynamodb java_使用Java扫描DynamoDB项目

    dynamodb java 在之前的文章中,我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 . 除了发出查询之外,DynamoDB还提供扫描功能. ...

  2. dynamodb java_使用Java查询DynamoDB项

    dynamodb java 在上一篇文章中,我们继续在DynamoDB数据库上插入数据. 在本教程中,我们将对DynamoDB表发出一些基本查询. 主要规则是每个查询都必须使用哈希键. 查询的最简单形 ...

  3. dynamodb java_使用Java将项目插入DynamoDB表

    dynamodb java 在上一篇文章中,我们学习了如何使用Java创建DynamoDB表. 下一步是将项目插入到先前创建的DynamoDB表中. 请记住,对于插入操作,最基本的步骤是指定主键. 对 ...

  4. dynamodb java_使用Java第2部分查询DynamoDB项

    dynamodb java 在上一篇文章中,我们有机会发布了一些基本的DynamoDB查询操作. 但是,除了基本操作之外,DynamoDB api还为我们提供了一些额外的功能. 投影是具有类似选择功能 ...

  5. 使用Java更新DynamoDB项

    在上一篇文章中,我们继续使用Java将项目插入DynamoDB. DynamoDB还支持更新项目. 我们将使用Login表获取更新示例. 发布更新时,必须指定要更新的项目的主键. public voi ...

  6. 使用Java扫描DynamoDB项目

    在之前的文章中,我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 . 除了发出查询之外,DynamoDB还提供扫描功能. 扫描所做的是获取您在Dyn ...

  7. java 程序更新_如何关闭JAVA更新程序

    Win7系统上安装JAVA JRE或JDK后,系统就会启动一个jusched进程,定时检查JRE或JDK更新包,跟Adobe Reader.FlashPlayer一样烦人,每次开机,或是定时每天去搞个 ...

  8. java 停止更新_如何关闭JAVA更新程序

    Win7系统上安装JAVA JRE或JDK后,系统就会启动一个jusched进程,定时检查JRE或JDK更新包,跟Adobe Reader.FlashPlayer一样烦人,每次开机,或是定时每天去搞个 ...

  9. 【Linux 内核 内存管理】RCU 机制 ④ ( RCU 模式下更新链表项 list_replace_rcu 函数 | 链表操作时使用 smp_wmb() 函数保证代码执行顺序 )

    文章目录 一.RCU 模式下更新链表项 list_replace_rcu 函数 二.链表操作时使用 smp_wmb() 函数保证代码执行顺序 一.RCU 模式下更新链表项 list_replace_r ...

最新文章

  1. RESTful之认证Authentication
  2. 天兔(Lepus)监控邮件推送安装配置
  3. 汇编语言EQU伪指令
  4. 将一个javaBean中非空的属性合并到另一个javaBean中
  5. 10种软件开发模型整理
  6. 基于ShardingSphere的Encrypt-JDBC数据脱敏实战
  7. 《第一行代码——Android》封面诞生记
  8. 【python】计算miou
  9. C# 制作贪吃蛇小游戏,最简单的实现
  10. android9机型,安卓9正式定名Android 9 Pie,这些机型可以尝鲜
  11. 标准化存贷款数据报送系统
  12. 基于博客标签的多标签分类器(multi-label classification)
  13. 视通科技知识产权保护中心审理庭解决方案
  14. 苹果效应:创新已不是主流,去惊喜”才是大流行
  15. 全同态加密(FHE)体系概述(初学版)
  16. 网站无法用localhost打开,修复localhost一切常见错误,一次性去除病根
  17. 华为OLT设备EPON/GPON混插管理
  18. mfc | mfc集成opencv,实现监控、拍照、录像、录像播放(保姆级教程)
  19. 嵌入式 RTP协议详解以及其他相关协议
  20. css 按钮固定在右上交_如何在iPad上交换左右鼠标按钮

热门文章

  1. LOJ:相框(欧拉回路、分类讨论)
  2. YBTOJ:魔法数字(数位dp)
  3. jzoj5698-[gdoi2018day1]密码锁【贪心,差分】
  4. jzoj4485-[GDOI 2016 Day1]第一题 中学生数学题【数学】
  5. P1332,nssl1316-血色先锋军【bfs】
  6. 32、JAVA_WEB开发基础之jsp
  7. 腾讯面试题:一条SQL语句执行得很慢的原因有哪些?
  8. 去 BAT 面试,总结了这 55 道 MySQL 面试题
  9. 80%的程序员都不了解的调试技巧
  10. JS Promise的实现原理