1 package com.db4odoc.f1.clientserver; 2 3 import java.io.*; 4 import com.db4o.*; 5 6 7 public class TransactionExample { 8 public final static String YAPFILENAME="formula1.yap"; 9 public static void main(String [] args) { 10 new File(YAPFILENAME).delete(); 11 ObjectContainer db=Db4o.openFile(YAPFILENAME); 12 try { 13 storeCarCommit(db); 14 db.close(); 15 db=Db4o.openFile(YAPFILENAME); 16 listAllCars(db); 17 storeCarRollback(db); 18 db.close(); 19 db=Db4o.openFile(YAPFILENAME); 20 listAllCars(db); 21 carSnapshotRollback(db); 22 carSnapshotRollbackRefresh(db); 23 } 24 finally { 25 db.close(); 26 } 27 } 28 30 public static void storeCarCommit(ObjectContainer db) { 31 Pilot pilot=new Pilot("Rubens Barrichello",99); 32 Car car=new Car("BMW"); 33 car.setPilot(pilot); 34 db.set(car); 35 db.commit(); 36 } 37 39 public static void listAllCars(ObjectContainer db) { 40 ObjectSet result=db.get(Car.class); 41 listResult(result); 42 } 43 45 public static void storeCarRollback(ObjectContainer db) { 46 Pilot pilot=new Pilot("Michael Schumacher",100); 47 Car car=new Car("Ferrari"); 48 car.setPilot(pilot); 49 db.set(car); 50 db.rollback(); 51 } 52 54 public static void carSnapshotRollback(ObjectContainer db) { 55 ObjectSet result=db.get(new Car("BMW")); 56 Car car=(Car)result.next(); 57 car.snapshot(); 58 db.set(car); 59 db.rollback(); 60 System.out.println(car); 61 } 62 64 public static void carSnapshotRollbackRefresh(ObjectContainer db) { 65 ObjectSet result=db.get(new Car("BMW")); 66 Car car=(Car)result.next(); 67 car.snapshot(); 68 db.set(car); 69 db.rollback(); 70 db.ext().refresh(car,Integer.MAX_VALUE); 71 System.out.println(car); 72 } 73 75 public static void listResult(ObjectSet result) { 76 System.out.println(result.size()); 77 while(result.hasNext()) { 78 System.out.println(result.next()); 79 } 80 } 81 } 83 | Popular Tags |