Java 开发 2.0: 使用 Amazon SimpleDB 进行云存储,第 1 部分:开始使用 SimpleDB 和 Amazon SDK
2010-08-11 00:00:00 来源:WEB开发网清单 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));
更多精彩
赞助商链接