Coder Social home page Coder Social logo

ejdb-java's Introduction

Embedded JSON database library Java binding

EJDB Java API documentation

Installation

Required tools/system libraries:

(A) Installing directly from sources

git clone https://github.com/Softmotions/ejdb-java.git
cd ./ejdb-java
./configure --with-jdk=<path to JDK> --prefix=<installation prefix>
make
sudo make install

Note: Ensure that libejdb is available from LD_LIBRARY_PATH

One snippet intro

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 ([email protected])
 * @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();
            }
        }
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.