import java.io.Serializable;
import wwutil.model.annotation.DbType;
import wwutil.model.annotation.Model;
import wwutil.model.annotation.Key;
import wwutil.jsoda.Jsoda;
import wwutil.jsoda.Dao;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
/**
* Sample to illustrate annotating a simple data class, storing it, and loading it.
*/
public class Sample1 {
// Get AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from environment variables.
// You can hardcode them here for testing but should remove them afterward.
private static final String key = System.getenv("AWS_ACCESS_KEY_ID");
private static final String secret = System.getenv("AWS_SECRET_ACCESS_KEY");
// A sample model class for illustrating saving and loading from the SimpleDB
@Model
public static class SampleUser {
@Key
public int id;
public String name;
public long visits;
public SampleUser() {}
public SampleUser(int id, String name, long visits) {
this.id = id;
this.name = name;
this.visits = visits;
}
public String toString() {
return id + " " + name + " " + visits;
}
}
public static void main(String[] args)
throws Exception
{
// Create a Jsoda object with AWS credentials.
// Jsoda is for tracking registration of models and general factory.
Jsoda jsoda = new Jsoda(new BasicAWSCredentials(key, secret));
// Create the corresponding table in the database. Only need to do this once.
jsoda.createModelTable(SampleUser.class);
// Get the Dao object specific to the SampleUser model class.
Dao<SampleUser> dao = jsoda.dao(SampleUser.class);
// Save some objects
dao.put(new SampleUser(101, "Jack", 1));
dao.put(new SampleUser(102, "Jill", 1));
dao.put(new SampleUser(103, "Joe", 1));
dao.put(new SampleUser(104, "Jae", 1));
// Load objects by key
SampleUser obj1 = dao.get(101);
System.out.println(obj1);
System.out.println(dao.get(102));
System.out.println(dao.get(103));
System.out.println(dao.get(104));
// Modify an object and save it
obj1.visits++;
dao.put(obj1);
Thread.sleep(1000);
// Reload the modified object
System.out.println(dao.get(101));
}
}