WEB开发网
开发学院软件开发Java Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储... 阅读

Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储,第 1 部分:开始使用 SimpleDB 和 Amazon SDK

 2010-08-11 00:00:00 来源:WEB开发网   
核心提示: 清单 3. 在 SimpleDB 中创建一个项目sdb.batchPutAttributes(newBatchPutAttributesRequest(domain,data));SimpleDB 中的查询在保存了一个比赛之后,我当然可以通过 SimpleDB 的查询语言(与 SQL 很像)搜索

清单 3. 在 SimpleDB 中创建一个项目

 sdb.batchPutAttributes(new BatchPutAttributesRequest(domain, data)); 

SimpleDB 中的查询

在保存了一个比赛之后,我当然可以通过 SimpleDB 的查询语言(与 SQL 很像)搜索它。不过有一个缺点。还记得我说过,所有项目属性都存储为 String吗?这意味着,数据比较是 按字母顺序进行的,这在执行搜索时有影响。

如果我根据数字运行一个查询,例如,SimpleDB 会基于字符执行搜索,而非真正的整数值。现在,我有一个简单的比赛实例存储在 SimpleDB 中,我可以使用 SimpleDB 的类似于 SQL 的语句轻松对其进行搜索,如清单 4 所示:

清单 4. Searching for Race_01

 String qry = "select * from `" + domain + "` where Name = 'Charlottesville Marathon'"; 
 SelectRequest selectRequest = new SelectRequest(qry); 
 for (Item item : sdb.select(selectRequest).getItems()) { 
 System.out.println("Race Name: " + item.getName()); 
 } 

清单 4 中的查询类似于标准 SQL。在本例中,我仅查询 Name为 “Charlottesville Marathon” 的所有 Race实例。 发送一个 SelectRequest到 AmazonSimpleDBClient会产生许多 Item。因此,我能够迭代项目并打印其名称,在本例中,我应该只收到一个项目。

现在让我们看一下,当我添加另一个带不同距离属性的比赛时会发生什么,如清单 5 所示:

清单 5. 较短的比赛

 List<ReplaceableItem> data2 = new ArrayList<ReplaceableItem>(); 
 
 data2.add(new ReplaceableItem().withName("Race_02").withAttributes( 
  new ReplaceableAttribute().withName("Name").withValue("Charlottesville 1/2 Marathon"), 
  new ReplaceableAttribute().withName("Distance").withValue("13.1"))); 
 
 sdb.batchPutAttributes(new BatchPutAttributesRequest(domain, data2)); 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Java 开发 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接