Documente Academic
Documente Profesional
Documente Cultură
Laborator 12 – db4o
Stocarea unui obiect nou în db4o se face prin apelul metodei store din database
container object. Dacă se dorește efectuarea unei actualizări a unui obiect deja
existent în baza de date, este apelată aceeași metodă deoarece db4o folosește
unique object identifiers din .NET sau Java pentru a determina dacă un obiect este
nou sau nu.
Următorul exemplu arată mecanismul stocării obiectelor în db4o:
class Person
{
private string name;
private Address address;
private string phoneNumber;
public Person()
{
}
45 din 52
Baze de date orientate obiect – lucrări de laborator
class Address
{
private string street;
private string city;
try
{
// Opens the database file and creates a new instance of the IObjectContainer interface.
IObjectContainer db = Db4oFactory.OpenFile("Persons.yap");
catch (Exception)
{
// Rolls the transaction back, in case of failures.
db.Rollback();
}
finally
{
// Closes the database.
db.Close();
}
46 din 52
Baze de date orientate obiect – lucrări de laborator
Query by Example
47 din 52
Baze de date orientate obiect – lucrări de laborator
try
{
// Opens the database file and creates a new instance of the IObjectContainer interface.
IObjectContainer db = Db4oFactory.OpenFile("Persons.yap");
finally
{
// Closes the database.
db.Close();
}
Native Query
class Customer
{
private string name;
private int age;
private int discount;
48 din 52
Baze de date orientate obiect – lucrări de laborator
try
{
// Opens the database file and creates a new instance of the IObjectContainer interface.
IObjectContainer db = Db4oFactory.OpenFile("Customers.yap");
// Retrieves all the customers in the database, whose age attribute is between 35 and 50
IList<Customer> customersList = db.Query<Customer>(delegate(Customer customer)
{
return customer.CurrentAge >= 35 && customer.CurrentAge <= 50;
});
finally
{
// Closes the database.
db.Close();
}
SODA Query
SODA Query este primul tip de interogare introdus de db4o şi încă este folosit intern în
implementarea Native Query. Ideea de bază la SODA este construirea unui graf al
interogării. Rezultatul este rapid deoarece graful este o structură care poate fi traversată
rapid. Metoda este mai complicată de folosit deoarece trebuie definit explicit graful. Din acest
motiv este de preferat Native Query deoarece acesta folosește construcții proprii limbajelor
de programare care sunt apoi translate automat de db4o în graf.
49 din 52
Baze de date orientate obiect – lucrări de laborator
Exemplul de mai jos returnează toate obiectele Customer cu atributul vârsta cuprins între
35 şi 50.
try
{
// Opens the database file and creates a new instance of the IObjectContainer interface.
IObjectContainer db = Db4oFactory.OpenFile("Customers.yap");
finally
{
// Closes the database.
db.Close();
}
50 din 52
Baze de date orientate obiect – lucrări de laborator
import java.io.*;
import com.db4o.*;
import com.db4odoc.f1.*;
51 din 52
Baze de date orientate obiect – lucrări de laborator
52 din 52