package exempleBD ; import COM.odi.Database; import COM.odi.ObjectStore; import COM.odi.Transaction; import COM.odi.DatabaseNotFoundException; import COM.odi.DatabaseRootNotFoundException; public class exempleBD { // methode main. Argument le nom de la base de donnees. public static void main(String argv[]) { String dbName=argv[0] + ".odb"; System.out.println("Using Database "+dbName); // 1ere etape: Creation d'une session ObjectStore.initialize(null, null); Database db=null; // 2eme etape: Creation/ouverture de la base de donnees try{ db = Database.open(dbName, ObjectStore.OPEN_UPDATE); } catch (DatabaseNotFoundException e) { db=Database.create(dbName,ObjectStore.ALL_READ|ObjectStore.ALL_WRITE); } // 3eme etape Lancement d'une transaction Transaction t = Transaction.begin(ObjectStore.UPDATE); // 4eme etape . Definir un point d'entree' : Root /* Il faut definir la classe qui represente le point d'entree * Dans la base. Dans l'exemple c'est ClassRoot.class * */ ClassRoot classRoot=getRootDatabase(db) ; // Creation d'objets Personne pour les mettres dans l'objet root Personne p1 = new Personne("Paul", "chez lui", "555-3612") ; Personne p2 = new Personne("Jean", "chez sa copine","911-1911") ; Personne p3 = new Personne("Jacque","chez sa mere","011-3636") ; classRoot.addPersonne(p1,1) ; classRoot.addPersonne(p2,2) ; classRoot.addPersonne(p3,3) ; t.commit(); // Sauvegarde dans la base db.close(); // fermeture de la base } // main() public static ClassRoot getRootDatabase(Database db) { ClassRoot root = null; if ((db != null) && (db.isOpen())) { // Nom donnee' a l'objet root String rootName="CLASSROOT"; try{ // soit que le root exite : root = (ClassRoot)db.getRoot(rootName); } catch (DatabaseRootNotFoundException dbrex) { // soit qu'il faut creer le root root = new ClassRoot(); db.createRoot(rootName, root); } } return root; } }