1 package com.db4o.f1.chapter1; 2 3 import com.db4o.Db4o; 4 import com.db4o.ObjectContainer; 5 import com.db4o.ObjectSet; 6 import com.db4o.f1.Util; 7 import com.db4o.query.Constraint; 8 import com.db4o.query.Query; 9 10 11 public class QueryExample extends Util { 12 public static void main(String [] args) { 13 ObjectContainer db=Db4o.openFile(Util.YAPFILENAME); 14 try { 15 storeFirstPilot(db); 16 storeSecondPilot(db); 17 retrieveAllPilots(db); 18 retrievePilotByName(db); 19 retrievePilotByExactPoints(db); 20 retrieveByNegation(db); 21 retrieveByConjunction(db); 22 retrieveByDisjunction(db); 23 retrieveByComparison(db); 24 retrieveByDefaultFieldValue(db); 25 retrieveSorted(db); 26 clearDatabase(db); 27 } 28 finally { 29 db.close(); 30 } 31 } 32 33 public static void storeFirstPilot(ObjectContainer db) { 34 Pilot pilot1=new Pilot("Michael Schumacher",100); 35 db.set(pilot1); 36 System.out.println("Stored "+pilot1); 37 } 38 39 public static void storeSecondPilot(ObjectContainer db) { 40 Pilot pilot2=new Pilot("Rubens Barrichello",99); 41 db.set(pilot2); 42 System.out.println("Stored "+pilot2); 43 } 44 45 public static void retrieveAllPilots(ObjectContainer db) { 46 Query query=db.query(); 47 query.constrain(Pilot.class); 48 ObjectSet result=query.execute(); 49 listResult(result); 50 } 51 52 public static void retrievePilotByName(ObjectContainer db) { 53 Query query=db.query(); 54 query.constrain(Pilot.class); 55 query.descend("name").constrain("Michael Schumacher"); 56 ObjectSet result=query.execute(); 57 listResult(result); 58 } 59 60 public static void retrievePilotByExactPoints( 61 ObjectContainer db) { 62 Query query=db.query(); 63 query.constrain(Pilot.class); 64 query.descend("points").constrain(new Integer (100)); 65 ObjectSet result=query.execute(); 66 listResult(result); 67 } 68 69 public static void retrieveByNegation(ObjectContainer db) { 70 Query query=db.query(); 71 query.constrain(Pilot.class); 72 query.descend("name").constrain("Michael Schumacher").not(); 73 ObjectSet result=query.execute(); 74 listResult(result); 75 } 76 77 public static void retrieveByConjunction(ObjectContainer db) { 78 Query query=db.query(); 79 query.constrain(Pilot.class); 80 Constraint constr=query.descend("name") 81 .constrain("Michael Schumacher"); 82 query.descend("points") 83 .constrain(new Integer (99)).and(constr); 84 ObjectSet result=query.execute(); 85 listResult(result); 86 } 87 88 public static void retrieveByDisjunction(ObjectContainer db) { 89 Query query=db.query(); 90 query.constrain(Pilot.class); 91 Constraint constr=query.descend("name") 92 .constrain("Michael Schumacher"); 93 query.descend("points") 94 .constrain(new Integer (99)).or(constr); 95 ObjectSet result=query.execute(); 96 listResult(result); 97 } 98 99 public static void retrieveByComparison(ObjectContainer db) { 100 Query query=db.query(); 101 query.constrain(Pilot.class); 102 query.descend("points") 103 .constrain(new Integer (99)).greater(); 104 ObjectSet result=query.execute(); 105 listResult(result); 106 } 107 108 public static void retrieveByDefaultFieldValue( 109 ObjectContainer db) { 110 Pilot somebody=new Pilot("Somebody else",0); 111 db.set(somebody); 112 Query query=db.query(); 113 query.constrain(Pilot.class); 114 query.descend("points").constrain(new Integer (0)); 115 ObjectSet result=query.execute(); 116 listResult(result); 117 db.delete(somebody); 118 } 119 120 public static void retrieveSorted(ObjectContainer db) { 121 Query query=db.query(); 122 query.constrain(Pilot.class); 123 query.descend("name").orderAscending(); 124 ObjectSet result=query.execute(); 125 listResult(result); 126 query.descend("name").orderDescending(); 127 result=query.execute(); 128 listResult(result); 129 } 130 131 public static void clearDatabase(ObjectContainer db) { 132 ObjectSet result=db.get(Pilot.class); 133 while(result.hasNext()) { 134 db.delete(result.next()); 135 } 136 } 137 } 138 | Popular Tags |