1 package com.db4odoc.f1.queries; 2 3 import java.io.File ; 4 5 import com.db4o.Db4o; 6 import com.db4o.ObjectContainer; 7 import com.db4o.ObjectSet; 8 import com.db4o.query.Constraint; 9 import com.db4o.query.Query; 10 11 12 public class QueryExample { 13 public final static String YAPFILENAME="formula1.yap"; 14 15 public static void main(String [] args) { 16 storePilot(); 17 updatePilotWrong(); 18 updatePilot(); 19 deletePilot(); 20 ObjectContainer db=Db4o.openFile(YAPFILENAME); 21 try { 22 retrievePilotByName(db); 23 retrievePilotByExactPoints(db); 24 retrieveByNegation(db); 25 retrieveByConjunction(db); 26 retrieveByDisjunction(db); 27 retrieveByComparison(db); 28 retrieveByDefaultFieldValue(db); 29 retrieveSorted(db); 30 } finally { 31 db.close(); 32 } 33 } 34 36 public static void storePilot() { 37 new File (YAPFILENAME).delete(); 38 ObjectContainer db=Db4o.openFile(YAPFILENAME); 39 try { 40 Pilot pilot=new Pilot("Michael Schumacher",0); 41 db.set(pilot); 42 System.out.println("Stored "+pilot); 43 pilot.addPoints(10); 45 db.set(pilot); 46 System.out.println("Stored "+pilot); 47 } finally { 48 db.close(); 49 } 50 retrieveAllPilots(); 51 } 52 54 55 public static void updatePilot() { 56 storePilot(); 57 ObjectContainer db=Db4o.openFile(YAPFILENAME); 58 try { 59 ObjectSet result=db.get(new Pilot("Michael Schumacher",10)); 61 Pilot found=(Pilot)result.next(); 62 found.addPoints(10); 63 db.set(found); 64 System.out.println("Added 10 points for "+found); 65 } finally { 66 db.close(); 67 } 68 retrieveAllPilots(); 69 } 70 72 public static void updatePilotWrong() { 73 storePilot(); 74 ObjectContainer db=Db4o.openFile(YAPFILENAME); 75 try { 76 Pilot pilot = new Pilot("Michael Schumacher",10); 79 pilot.addPoints(10); 80 db.set(pilot); 81 System.out.println("Added 10 points for "+pilot); 82 } finally { 83 db.close(); 84 } 85 retrieveAllPilots(); 86 } 87 89 public static void deletePilot() { 90 storePilot(); 91 ObjectContainer db=Db4o.openFile(YAPFILENAME); 92 try { 93 ObjectSet result=db.get(new Pilot("Michael Schumacher",10)); 95 Pilot found=(Pilot)result.next(); 96 db.delete(found); 97 System.out.println("Deleted "+found); 98 } finally { 99 db.close(); 100 } 101 retrieveAllPilots(); 102 } 103 105 106 public static void retrieveAllPilots() { 107 ObjectContainer db=Db4o.openFile(YAPFILENAME); 108 try { 109 Query query=db.query(); 110 query.constrain(Pilot.class); 111 ObjectSet result=query.execute(); 112 listResult(result); 113 } finally { 114 db.close(); 115 } 116 } 117 119 public static void retrievePilotByName(ObjectContainer db) { 120 Query query=db.query(); 121 query.constrain(Pilot.class); 122 query.descend("name").constrain("Michael Schumacher"); 123 ObjectSet result=query.execute(); 124 listResult(result); 125 } 126 128 public static void retrievePilotByExactPoints( 129 ObjectContainer db) { 130 Query query=db.query(); 131 query.constrain(Pilot.class); 132 query.descend("points").constrain(new Integer (100)); 133 ObjectSet result=query.execute(); 134 listResult(result); 135 } 136 138 public static void retrieveByNegation(ObjectContainer db) { 139 Query query=db.query(); 140 query.constrain(Pilot.class); 141 query.descend("name").constrain("Michael Schumacher").not(); 142 ObjectSet result=query.execute(); 143 listResult(result); 144 } 145 147 public static void retrieveByConjunction(ObjectContainer db) { 148 Query query=db.query(); 149 query.constrain(Pilot.class); 150 Constraint constr=query.descend("name") 151 .constrain("Michael Schumacher"); 152 query.descend("points") 153 .constrain(new Integer (99)).and(constr); 154 ObjectSet result=query.execute(); 155 listResult(result); 156 } 157 159 public static void retrieveByDisjunction(ObjectContainer db) { 160 Query query=db.query(); 161 query.constrain(Pilot.class); 162 Constraint constr=query.descend("name") 163 .constrain("Michael Schumacher"); 164 query.descend("points") 165 .constrain(new Integer (99)).or(constr); 166 ObjectSet result=query.execute(); 167 listResult(result); 168 } 169 171 public static void retrieveByComparison(ObjectContainer db) { 172 Query query=db.query(); 173 query.constrain(Pilot.class); 174 query.descend("points") 175 .constrain(new Integer (99)).greater(); 176 ObjectSet result=query.execute(); 177 listResult(result); 178 } 179 181 public static void retrieveByDefaultFieldValue( 182 ObjectContainer db) { 183 Pilot somebody=new Pilot("Somebody else",0); 184 db.set(somebody); 185 Query query=db.query(); 186 query.constrain(Pilot.class); 187 query.descend("points").constrain(new Integer (0)); 188 ObjectSet result=query.execute(); 189 listResult(result); 190 db.delete(somebody); 191 } 192 194 public static void retrieveSorted(ObjectContainer db) { 195 Query query=db.query(); 196 query.constrain(Pilot.class); 197 query.descend("name").orderAscending(); 198 ObjectSet result=query.execute(); 199 listResult(result); 200 query.descend("name").orderDescending(); 201 result=query.execute(); 202 listResult(result); 203 } 204 206 public static void clearDatabase(ObjectContainer db) { 207 ObjectSet result=db.get(Pilot.class); 208 while(result.hasNext()) { 209 db.delete(result.next()); 210 } 211 } 212 214 public static void listResult(ObjectSet result) { 215 System.out.println(result.size()); 216 while(result.hasNext()) { 217 System.out.println(result.next()); 218 } 219 } 220 } 222 | Popular Tags |