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