2012-09-02 5 views
0

...iOS SDK의 SimpleDB AWS에서 데이터를 검색하고 표시하려면 어떻게해야합니까? 내가 iOS 및 AWS에 새로 온 사람

내가 AWS 내 SDB에서 데이터를 검색 할 수있는 방법을 얻기 위해 노력했습니다는 ...

우선이에 연결하고 싶습니다 aws 다음 somedomain에서 모든 것을 검색하고 배열 안에 넣어 싶습니다. 그리고 어레이 내부에 무엇이 있는지 읽어보십시오.

// Connecting to SDB  
AmazonSimpleDBClient *sdbClient = [[AmazonSimpleDBClient alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY]; 


@try { 
    SimpleDBSelectRequest *selectRequest = [[SimpleDBSelectRequest alloc] initWithSelectExpression:@"select * from somedomain"]; 
    selectRequest.consistentRead = YES; 
    if (self.nextToken != nil) { 
     selectRequest.nextToken = self.nextToken; 
    } 

    SimpleDBSelectResponse *selectResponse = [sdbClient select:selectRequest]; 
    self.nextToken = selectResponse.nextToken; 

    NSLog(self.nextToken); 

} 
@catch (NSException *exception) { 
    NSLog(@"Exception : [%@]", exception); 

} 

미리 감사드립니다. 모든 도움에 감사드립니다. :)

답변

1

다음은 도메인을 나열하고, 도메인을 만들고, 속성을 추가하고, 속성을 삭제하고, java의 항목을 나열하는 데 도움이됩니다.

public boolean checkSubscriptionToAmazonSimpleDB(String accessKey, String secretKey) { 
      try { 
       basicAWSCredentials = new BasicAWSCredentials(accessKey, secretKey); 
       amazonSimpleDBClient = new AmazonSimpleDBClient(basicAWSCredentials); 
       String sNextToken = ""; 
       boolean bDomainExist = false; 
       do { 
        ListDomainsRequest listDomainsRequest = new ListDomainsRequest(); 
        listDomainsRequest.setMaxNumberOfDomains(100); 
        listDomainsRequest.setNextToken(sNextToken); 
        ListDomainsResult listDomainsResult = amazonSimpleDBClient.listDomains(listDomainsRequest); 
        sNextToken = listDomainsResult.getNextToken(); 
        List<String> list = listDomainsResult.getDomainNames(); 
        for (String domain : list) { 
         System.out.println(domain); 
        } 
       } while (sNextToken != null && bDomainExist == false); 

      } catch (Throwable ex) { 
       System.out.println(ex.toString()); 
       return false; 
      } 
      return true; 
     } 

     public void createDomain(String domain) { 
      CreateDomainRequest createDomainRequest = new CreateDomainRequest(domain); 
      amazonSimpleDBClient.createDomain(createDomainRequest); 

     } 

     private boolean addItem(String domain, String itemName) { 
      try { 
       PutAttributesRequest putAttributesRequest = new PutAttributesRequest(); 
       putAttributesRequest.setDomainName(domain); 
       putAttributesRequest.setItemName(itemName); 
       List<ReplaceableAttribute> list = new ArrayList<ReplaceableAttribute>(); 
       list.add(new ReplaceableAttribute("A", "a", true)); 
       list.add(new ReplaceableAttribute("B", "c", true)); 
       list.add(new ReplaceableAttribute("C", "b", true)); 
       putAttributesRequest.setAttributes(list); 
       amazonSimpleDBClient.putAttributes(putAttributesRequest); 
      } catch (Throwable ex) { 
       System.out.println(ex.toString()); 
       return false; 
      } 
      return true; 
     } 

     private boolean deleteItem(String domain, String itemName) { 
      try { 
       DeleteAttributesRequest deleteAttributesRequest = new DeleteAttributesRequest(); 
       deleteAttributesRequest.setDomainName(domain); 
       deleteAttributesRequest.setItemName(itemName); 
       amazonSimpleDBClient.deleteAttributes(deleteAttributesRequest); 
      } catch (Throwable ex) { 
       System.out.println(ex.toString()); 
       return false; 
      } 
      return true; 
     } 

     public void getListOfArchived(String domainname, String pagesize, String nextToken) { 
      SelectResult selectResult = null; 
      String sNextToken = null; 
      String query = null; 
      do { 
       query = "select * from " + domainname; 
       SelectRequest selectRequest = new SelectRequest(query); 
       selectRequest.setNextToken(nextToken); 
       selectResult = amazonSimpleDBClient.select(selectRequest); 
       sNextToken = selectResult.getNextToken(); 
       List<Item> list = selectResult.getItems(); 
       for(Item item: list){ 
        item.getName(); // itemName 
        List<Attribute> listAttribute = item.getAttributes(); 
        for(Attribute attribute:listAttribute){ 
         attribute.getName(); // Attribute Name 
         attribute.getValue(); // Attribute value; 
        } 
       } 
      } while (sNextToken != null); 

     } 
+0

안녕하세요 @Ashish Pancholi, in ios 어떻게하면 simpledb에서 행을 삭제할 수 있습니까? – Vendetta

+0

@Vendetta 위의'private 부울 deleteItem (String domain, String itemName)'메서드를 참조하십시오. 삭제 요청에서 항목 이름 만 지정하여 행을 삭제할 수 있습니다. –

+0

@Vendetta https://github.com/aws/aws-sdk-ios/blob/master/src/Amazon.SimpleDB/Model/SimpleDBBatchDeleteAttributesRequest.m –

관련 문제