amazon web services - Query from AWS DynamoDB for Android -


i trying fetch data aws dynamodb database. have following code set up, getting errors. unclear how proceed here in order query data based on primary key

import android.support.v7.app.appcompatactivity; import android.os.bundle; import com.amazonaws.auth.cognitocachingcredentialsprovider; import com.amazonaws.regions.regions; import com.amazonaws.services.dynamodbv2.*; import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.*;  public class mainactivity extends appcompatactivity {  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main); }  cognitocachingcredentialsprovider credentialsprovider = new cognitocachingcredentialsprovider(         getapplicationcontext(),         "**********************", // identity pool id         regions.us_east_1 // region );  amazondynamodbclient ddbclient = new amazondynamodbclient(credentialsprovider); dynamodbmapper mapper = new dynamodbmapper(ddbclient); 

first comment, looks trying in activity -- throw network on main thread exception in android.

second, general guide, need set separate class dynamodb fields set , linked variables in class. example:

@dynamodbtable(tablename = sa_awsconstants.questiontablename) public class sa_question implements comparable<sa_question> {      // fields coming aws table     private string questionguid_str; // : string, primary hash key     private string json_str;     private long ordinalposition_int;      ...      @dynamodbhashkey(attributename = sa_awsconstants.dbschema_questionguid)     public string getquestionguid_str() {         return questionguid_str;     }      public void setquestionguid_str(string questionguid_str) {         this.questionguid_str = questionguid_str;     }      @dynamodbrangekey(attributename = sa_awsconstants.dbschema_ordinalpos)     public long getordinalposition_int() {         return ordinalposition_int;     }      public void setordinalposition_int(long ordinalposition_int) {         this.ordinalposition_int = ordinalposition_int;     }      @dynamodbattribute(attributename = sa_awsconstants.dbschema_question_jsonstr)     public string getjson_str() {         return json_str;     }      public void setjson_str(string json_str) {         this.json_str = json_str;     } } 

then can this:

                dynamodbmapper mapper = new dynamodbmapper(ddb);                 dynamodbscanexpression scanexpression = new dynamodbscanexpression();                  paginatedscanlist<sa_question> paginatedq = mapper.scan(sa_question.class, scanexpression);                 arraylist<sa_question> awsqlist = new arraylist<sa_question>();                  (sa_question q : paginatedq) {                     q.initiatefromjson();                     awsqlist.add(q);                 } 

you have mindful of limits aws sets on returns of data single query (hence paginatedscan -- if expect exceed limit need check whether more data exists returned).


Comments