ios - 如何在 iOS SDK 中从 SimpleDB AWS 检索数据并显示它们?

标签 ios amazon-web-services amazon-simpledb

我是 iOS 和 AWS 的新手...

我一直在尝试通过某种方式从我在 AWS 上的 SDB 检索数据...

首先,我想连接到 aws,然后我想从某个域中检索所有内容并将其放入一个数组中。并读出数组里面的内容。

 // 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);

}

在此先感谢大家。我感谢所有的帮助。 :)

最佳答案

这里有一些在 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);

        }

关于ios - 如何在 iOS SDK 中从 SimpleDB AWS 检索数据并显示它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239164/

相关文章:

iOS - 一种浏览sqlite数据库的方法

couchdb - bigtable,cassandra,simpledb,dynamo,couchdb,hypertable,riak和hbase,它们有什么共同点?

ios - OS X 和 iOS 之间的存储差异

ios - 使用 Realm 和结果 JSON

iOS TWTRComposer 请求失败 : unauthorized (401)

amazon-web-services - 在 AWS::Lambda::Function 中指定 ImageUri 会引发 CF 错误

.net - AWS、EC2 - RunInstances 之后创建标签

mysql - 长时间运行的 mysql "cleaning up"事务

sql - 在 "eventual"一致性和无事务(又名 SimpleDB)的情况下,你真的能走多远?

database - simpledb 中的 ItemName