Package org.springmodules.db4o.examples.chapter1

Source Code of org.springmodules.db4o.examples.chapter1.QueryExample

package org.springmodules.db4o.examples.chapter1;

import java.util.Iterator;

import org.springmodules.db4o.examples.Pilot;
import org.springframework.context.support.AbstractApplicationContext;

import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.query.Constraint;
import com.db4o.query.Query;

/**
* This class corresponds with the class <code>QueryExample</code> from the
* Db4o tutorial.
*
* @author Daniel Mitterdorfer
* @since 07.12.2005
*
*/
public class QueryExample {
  private static void listResult(ObjectSet result) {
    for (Iterator it = result.iterator(); it.hasNext();) {
      Pilot pilot = (Pilot) it.next();
      System.out.println(pilot.toString());
    }
  }

  public static void storeFirstPilot(ObjectContainer db) {
    Pilot pilot1 = new Pilot("Michael Schumacher", 100);
    db.set(pilot1);
    System.out.println("Stored " + pilot1);
  }

  public static void storeSecondPilot(ObjectContainer db) {
    Pilot pilot2 = new Pilot("Rubens Barrichello", 99);
    db.set(pilot2);
    System.out.println("Stored " + pilot2);
  }

  public static void retrieveAllPilots(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrievePilotByName(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("name").constrain("Michael Schumacher");
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrievePilotByExactPoints(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("points").constrain(new Integer(100));
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrieveByNegation(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("name").constrain("Michael Schumacher").not();
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrieveByConjunction(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    Constraint constr = query.descend("name").constrain("Michael Schumacher");
    query.descend("points").constrain(new Integer(99)).and(constr);
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrieveByDisjunction(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    Constraint constr = query.descend("name").constrain("Michael Schumacher");
    query.descend("points").constrain(new Integer(99)).or(constr);
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrieveByComparison(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("points").constrain(new Integer(99)).greater();
    ObjectSet result = query.execute();
    listResult(result);
  }

  public static void retrieveByDefaultFieldValue(ObjectContainer db) {
    Pilot somebody = new Pilot("Somebody else", 0);
    db.set(somebody);
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("points").constrain(new Integer(0));
    ObjectSet result = query.execute();
    listResult(result);
    db.delete(somebody);
  }

  public static void retrieveSorted(ObjectContainer db) {
    Query query = db.query();
    query.constrain(Pilot.class);
    query.descend("name").orderAscending();
    ObjectSet result = query.execute();
    listResult(result);
    query.descend("name").orderDescending();
    result = query.execute();
    listResult(result);
  }

  public static void clearDatabase(ObjectContainer db) {
    ObjectSet result = db.get(new Pilot(null, 0));
    while (result.hasNext()) {
      db.delete(result.next());
    }
  }

  /**
   * @param args
   *            Command line arguments. This appliation does not check any of
   *            these arguments.
   */
  public static void main(String[] args) {
    AbstractApplicationContext ctx = ExampleUtils.getContext();
    ObjectContainer db = (ObjectContainer) ctx.getBean(ExampleUtils.CONTAINER_BEAN_ID);
    try {
      storeFirstPilot(db);
      storeSecondPilot(db);
      retrieveAllPilots(db);
      retrievePilotByName(db);
      retrievePilotByExactPoints(db);
      retrieveByNegation(db);
      retrieveByConjunction(db);
      retrieveByDisjunction(db);
      retrieveByComparison(db);
      retrieveByDefaultFieldValue(db);
      retrieveSorted(db);
      clearDatabase(db);
    } finally {
      ctx.close();
    }
  }
}
TOP

Related Classes of org.springmodules.db4o.examples.chapter1.QueryExample

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.