詳細說明去官網看吧!
這篇主要會教大家如何
建立一張table,
新增資料
刪除資料
查詢資料
首先要先宣告一些必備的參數,
// 你的table name(在Relational Database叫做table,這裡叫做domain)
final String DOMAIN_NAME = "member";
// 取得憑證,這檔案預設在/src底下
AWSCredentials credentials = new PropertiesCredentials(getClass().getClassLoader().getResourceAsStream("AwsCredentials.properties"));
// 宣告一個SimpleDB
AmazonSimpleDB sdb = new AmazonSimpleDBClient(credentials);
接著就建立一個table,
// 建立一個table(在Relational Database叫做table,這裡叫做domain)
sdb.createDomain(new CreateDomainRequest(DOMAIN_NAME));
在SimpleDB的新增分成兩種方式!
一種是一筆一筆的新增,
另一種是批次的新增!(一次新增多筆)
有玩過GAE的大概知道,其實GAE也是這樣!
多筆的話就是用一個list存放資料!
在這邊先介紹一次新增多筆的!
// 先宣告一個List,List擺放的型態為ReplaceableItem,這型態意思是如果table裡面已經有一筆Ken的資料,那麼就取代掉那筆,不會多一筆
List<ReplaceableItem> listAddData = new ArrayList<ReplaceableItem>();
// 第一筆資料
// 先new一個Item,Item Name是Ken,然後這個item有四個attribute!分別是Sex, Tel, Mail, Nickname
listAddData.add(new ReplaceableItem("Ken").withAttributes(
new ReplaceableAttribute("Sex", "boy", true),
new ReplaceableAttribute("Tel", "09123456", true),
new ReplaceableAttribute("Mail", "xxx@kenyang.net", true),
new ReplaceableAttribute("Nickname", "KenYang", true)));
// 第二筆
listAddData.add(new ReplaceableItem("Sam").withAttributes(
new ReplaceableAttribute("Sex", "boy", true),
new ReplaceableAttribute("Tel", "09123456", true),
new ReplaceableAttribute("Mail", "xxx@kenyang.net", true),
new ReplaceableAttribute("Nickname", "SamYang", true)));
// 接著就新增吧!記得要指定Domain name!
sdb.batchPutAttributes(new BatchPutAttributesRequest(DOMAIN_NAME, listAddData));
接著要介紹新增一筆的! 其實大同小異,只是要宣告一個PutAttributesRequest來擺放資料!
一個PutAttributeRequest就代表一筆資料!
PutAttributesRequest dataAttribute = new PutAttributesRequest().withDomainName(DOMAIN_NAME).withItemName("John");
dataAttribute.getAttributes().add(
new ReplaceableAttribute()
.withName("Sex")
.withValue("girl")
.withReplace(true));
dataAttribute.getAttributes().add(
new ReplaceableAttribute()
.withName("Tel")
.withValue("0987123")
.withReplace(true));
dataAttribute.getAttributes().add(
new ReplaceableAttribute()
.withName("Mail")
.withValue("xxx@gmail.com")
.withReplace(true));
dataAttribute.getAttributes().add(
new ReplaceableAttribute()
.withName("Nickname")
.withValue("JohnYang")
.withReplace(true));
sdb.putAttributes(dataAttribute);
接下來要介紹刪除! 這邊是介紹一次刪除多筆的!
一樣是用一個List去存放要刪除的Item Name!
至於刪除單筆,也跟上述方法一樣! 這裡就不多作介紹!
List<DeletableItem> listDeleteData = new ArrayList<DeletableItem>();
listDeleteData.add(new DeletableItem().withName("Ken"));
listDeleteData.add(new DeletableItem().withName("Sam"));
// 所以Ken和Sam這兩筆資料會被刪除
sdb.batchDeleteAttributes(new BatchDeleteAttributesRequest(DOMAIN_NAME,listDeleteData));
最後要介紹查詢了!
// 注意,傳統的SQL指令,都是用單引號('),但是這裡要用(`)
String selectExpression = "select * from `" + DOMAIN_NAME + "` ";
SelectRequest selectRequest = new SelectRequest(selectExpression);
SelectResult sr = sdb.select(selectRequest);
for (Item item : sr.getItems()) {
response.getWriter().println(item.getName());
response.getWriter().println(item.getAttributes().get(0).getValue());
}