Używam dwóch różnych sposobów kwerendy obiektów w db4o i chciałbym dyskutować na ten temat.Najlepsze praktyki db4o do zapytania obiektów z db
1) W tym pierwszym przykładzie tworzę instancję ObjectContainer, otwieram połączenie, a następnie je zamykam.
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), "User");
ObjectSet result = db.queryByExample(user);
db.close();
2) W tym drugim przykładzie tworzę ObjectServer i niech połączenie otwarte przez cały cykl życia aplikacji. Ja również otwarty ObjectContainer z ObjectServer, aby moje zapytanie, a następnie zamknij go:
ObjectServer userDb = Db4oClientServer.openServer(Db4oClientServer.newServerConfiguration(), "User", 0);
ObjectContainer client = client = userDb.openClient();
ObjectSet result = client.queryByExample(user);
client.close();
-
Jakie są główne różnice między obiema metodami? Czy to niebezpieczne, jeśli nigdy nie zamykam serwera ObjectServer?
Moim zdaniem druga metoda jest lepsza, ponieważ jeśli dwie różne instancje wywołają metodę pokazaną w pierwszym przykładzie, drugi wywołujący otrzyma wyjątek, ponieważ baza danych zostanie zablokowana, ale w drugim przykładzie robię nie ma takiego problemu. Ponieważ nie mam dużego doświadczenia z db4o, wolę zapytać, czy jestem na dobrej drodze.
Wow, dzięki. Miałem problem, że moje obiekty były przechowywane dwa razy, i nie wiedziałem dlaczego. Twoja odpowiedź sprawia, że ta kwestia jest dla mnie jasna. Wielkie dzięki Vagaus. – jcdmb
Vagaus Hej, właśnie widziałem, że u jest brazylijski :) Kończę mój kurs nauki w informatyce = KIT Karlsruhe Institute of Technology w Niemczech. Byłem przez jakiś czas chce wiedzieć ktoś w okolicy dać mi jakieś informacje o tym, jak rynek pracy w dziedzinie informatyki w Brazylii, będzie to, że możemy wymienić kilka małych pomysłów w tym kierunku? Wyślij do mnie e-maila na mój adres e-mail miarę możliwości prosimy: [email protected] Z góry dziękuję za współpracę. Uścisk! – jcdmb
Mam pytanie, w jaki sposób sprawdzić, czy db4o ObjectContainer jest zamknięta? –