Skip to content

JavaMonday/gcd-json-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

31 Commits

Repository files navigation

GCD Json Java

GCD Json Java is a Java data access API designed for the Google App Engine datastore (https://cloud.google.com/datastore/docs/) through JSON API reference (https://cloud.google.com/datastore/docs/apis/v1beta2/). In this version, you can do basic actions like : commit, query and lookup.

To use library :

  • You need an appengine application (https://console.developers.google.com/project) with Google Cloud Datastore API status is On.
  • Some information to config. Choose your created project > APIs & auth (left menu) > Credentials > Create New Client ID > Chooose Service account > Create Client ID.
    • projectName : is your project id with "s~" before, example your project id : "your-project-id" -> projectName = "s~your-project-id".
    • iss : is Email address.
    • p12 key file : click Generate new P12 key, download, keyLocation variable is path to your p12 Key file.

Sample code :

  • Config
 String projectName = "s~your-project-id"; String iss = "xxxx20893014-d1kh9putd2n3hbqjsjlsbes1i8spxxx@developer.gserviceaccount.com"; String keyLocation = "your-project-id-xxxxx.p12"; GCDConfig config = new GCDConfig(projectName, iss, keyLocation); GCDService ds = GCDServiceFactory.getInstance(config); 
  • Registry your entry
    • Mark annotation @Entity for your entry.
    • Mark annotation @Id for entry key.
    • Mark annotation @Index for index field.
 import cloud.google.datastore.annotation.Annotation.Entity; import cloud.google.datastore.annotation.Annotation.Id; import cloud.google.datastore.annotation.Annotation.Index; @Entity public class Foo{@Id private String id = ""; private String name = ""; @Index private String category = ""; @Index private Date doc = Calendar.getInstance().getTime(); @Index private int status = 1} 
  • Commit
 // Insert single entry String projectName = "s~your-project-id"; String iss = "xxxx20893014-d1kh9putd2n3hbqjsjlsbes1i8spxxx@developer.gserviceaccount.com"; String keyLocation = "your-project-id-xxxxx.p12"; GCDConfig config = new GCDConfig(projectName, iss, keyLocation); GCDService ds = GCDServiceFactory.getInstance(config); Foo f = new Foo(); f.setId("entry-01"); f.setName("Entry 01"); List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f).insert(); 
 // Insert multi entry Foo f1 = new Foo(); f1.setId("entry-01"); f1.setName("Entry 01"); Foo f2 = new Foo(); f2.setId("entry-02"); f2.setName("Entry 02"); List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f1, f2).insert(); 
 // Insert list entry Foo f1 = new Foo(); f1.setId("entry-01"); f1.setName("Entry 01"); Foo f2 = new Foo(); f2.setId("entry-02"); f2.setName("Entry 02"); List<Foo> list = new ArrayList<Foo>(); list.add(f1); list.add(f2); List<Key<Foo>> listKey = ds.commit(Foo.class).entities(list).insert(); 
 // Update single entry Foo f = new Foo(); f.setId("entry-01"); f.setName("Entry 01"); List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f).update(); 
 // Delete single entry Foo f = new Foo(); f.setId("entry-01"); f.setName("Entry 01"); boolean success = ds.commit(Foo.class).entities(f).delete(); 
  • Lookup
 // Lookup single entry String id = "entry-01"; Foo lookupFoo = ds.lookup(Foo.class).id(f.getId()).get(); 
 // Lookup multi entry String id1 = "entry-01"; String id2 = "entry-01"; List<Foo> listResult = ds.lookup(Foo.class).ids(id1, id2).list(); 
 // Lookup list entry String id1 = "entry-01"; String id2 = "entry-01"; List<String> listId = new ArrayList<String>(); listId.add(id1); listId.add(id2); List<Foo> listResult = ds.lookup(Foo.class).ids(listId).list(); 
  • Query
 // Query with limit List<Foo> list = ds.query(Foo.class).limit(10).list(); 
 // Query with offset List<Foo> list = ds.query(Foo.class).offset(10).list(); 
 // Query with order : ASCENDING, DESCENDING List<Foo> listOrderByDocASC = ds.query(Foo.class).order("doc", OrderDirection.ASCENDING).list(); List<Foo> listOrderByDocDESC = ds.query(Foo.class).order("doc", OrderDirection.DESCENDING).list(); 
 // Query with filter : EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL List<Foo> listFilterByStatus = ds.query(Foo.class).filter("status", 1, FilterOperator.EQUAL).list(); List<Foo> list = ds.query(Foo.class).filter("status", 1, FilterOperator.GREATER_THAN_OR_EQUAL).filter("status", 10, FilterOperator.LESS_THAN_OR_EQUAL).list(); 
 // Composite query List<Foo> list = ds.query(Foo.class).filter("status", 1, FilterOperator.GREATER_THAN_OR_EQUAL).limit(10).offset(10).order("doc", OrderDirection.ASCENDING).list(); 
 List<Foo> list = ds.gqlQuery(Foo.class).queryString("SELECT * FROM Foo").list(); 

About

Google Cloud Datastore Json API Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java100.0%