From: Vyacheslav Tyutyunkov Date: Wed, 3 Apr 2013 07:48:39 +0000 (+0700) Subject: #21 - Java binding sample X-Git-Tag: v1.2.12~368 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c5660f61692fe7c86b885af041dcde1539e1185;p=platform%2Fupstream%2Fejdb.git #21 - Java binding sample --- diff --git a/jejdb/jejdb.iml b/jejdb/jejdb.iml index b9f7c0f..093870a 100644 --- a/jejdb/jejdb.iml +++ b/jejdb/jejdb.iml @@ -5,6 +5,7 @@ + diff --git a/jejdb/samples/sample1/build.properties b/jejdb/samples/sample1/build.properties new file mode 100644 index 0000000..7fae4e3 --- /dev/null +++ b/jejdb/samples/sample1/build.properties @@ -0,0 +1,13 @@ +build.dir=${basedir}/build +source.dir=${basedir}/src + +jejdb.dir=${basedir}/../../target + +## General build options ## + +javac.debug=true +javac.optimize=false +javac.source=1.6 +javac.target=1.6 +javac.encoding=UTF-8 + diff --git a/jejdb/samples/sample1/build.xml b/jejdb/samples/sample1/build.xml new file mode 100644 index 0000000..84c411c --- /dev/null +++ b/jejdb/samples/sample1/build.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jejdb/samples/sample1/src/org/ejdb/sample1/Main.java b/jejdb/samples/sample1/src/org/ejdb/sample1/Main.java new file mode 100644 index 0000000..4df1567 --- /dev/null +++ b/jejdb/samples/sample1/src/org/ejdb/sample1/Main.java @@ -0,0 +1,101 @@ +package org.ejdb.sample1; + +import org.ejdb.bson.BSONObject; +import org.ejdb.driver.EJDB; +import org.ejdb.driver.EJDBCollection; +import org.ejdb.driver.EJDBQueryBuilder; +import org.ejdb.driver.EJDBResultSet; + +import java.util.Calendar; +import java.util.Date; + +/** + * @author Tyutyunkov Vyacheslav (tve@softmotions.com) + * @version $Id$ + */ +public class Main { + + public static void main(String[] args) { + EJDB ejdb = new EJDB(); + + try { + // Used modes: + // - read + // - write + // - create db if not exists + // - truncate existing db + ejdb.open("zoo", EJDB.JBOREADER | EJDB.JBOWRITER | EJDB.JBOCREAT | EJDB.JBOTRUNC); + + BSONObject parrot1 = new BSONObject("name", "Grenny") + .append("type", "African Grey") + .append("male", true) + .append("age", 1) + .append("birthhdate", new Date()) + .append("likes", new String[]{"green color", "night", "toys"}) + .append("extra1", null); + + Calendar calendar = Calendar.getInstance(); + calendar.set(2013, 1, 1, 0, 0, 1); + + BSONObject parrot2 = new BSONObject(); + parrot2.put("name", "Bounty"); + parrot2.put("type", "Cockatoo"); + parrot2.put("male", false); + parrot2.put("age", 15); + parrot2.put("birthdate", calendar.getTime()); + parrot2.put("likes", new String[]{"sugar cane"}); + parrot2.put("extra1", null); + + System.out.println("parrot1 =\n\t\t" + parrot1); + System.out.println("parrot2 =\n\t\t" + parrot2); + + EJDBCollection parrots = ejdb.getCollection("parrots"); + + // saving + parrots.save(parrot1); + parrots.save(parrot2); + + EJDBQueryBuilder qb; + EJDBResultSet rs; + + // Below two equivalent queries: + // Q1 + qb = new EJDBQueryBuilder(); + qb.field("likes", "toys") + .orderBy().asc("name").desc("age"); + + rs = parrots.createQuery(qb).find(); + System.out.println(); + System.out.println("Results (Q1): " + rs.length()); + for (BSONObject r : rs) { + System.out.println("\t" + r); + } + rs.close(); + + // Q2 + qb = new EJDBQueryBuilder(); + qb.field("likes").eq("toys") + .orderBy().add("name", true).add("age", false); + + rs = parrots.createQuery(qb).find(); + System.out.println(); + System.out.println("Results (Q2): " + rs.length()); + for (BSONObject r : rs) { + System.out.println("\t" + r); + } + + // Second way to iterate + System.out.println(); + System.out.println("Results (Q2): " + rs.length()); + for (int i = 0; i < rs.length(); ++i) { + System.out.println("\t" + i + " => " + rs.get(i)); + } + + rs.close(); + } finally { + if (ejdb.isOpen()) { + ejdb.close(); + } + } + } +}