Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicit� Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Guida all'uso di OrientDB: le Java API
Scritto da Luca Garulli il 14-09-2011 ore 09:02
Intel Code Modernization Workshops 2016
Da questa puntata inizieremo ad approfondire l'uso di OrientDB dalle nostre applicazioni mediante il linguaggio Java. OrientDB scritto in Java, per cui non servono driver specifici, ma possibile utilizzare la API native.

Il primo requisito quello di linkare i JAR opportuni: tutti i JAR si trovano nella cartella lib della distribuzione di OrientDB. Per iniziare metteremo nel classpath dell'applicazione solamente i due JAR necessari per lavorare con un database embedded (local): orientdb-core-*.jar; orient-commons-*.jar.

L'asterisco rappresenta la versione delle librerie utilizzata. Nel momento in cui scrivo l'ultima stabile la versione 1.0rc5. Se si utilizza MAVEN possibile usare i repository di OrientDB (a breve passer a quello ufficiale Sonatype.com):
  1. ...
  2.     <dependencies>
  3.         <dependency>
  4.             <groupId>com.orientechnologies</groupId>
  5.             <artifactId>orientdb-core</artifactId>
  6.             <version>1.0rc5</version>
  7.         </dependency>
  8.         <dependency>
  9.             <groupId>com.orientechnologies</groupId>
  10.             <artifactId>orient-commons</artifactId>
  11.             <version>1.0rc5</version>
  12.         </dependency>
  13.     </dependencies>
  14.     <repositories>
  15.         <repository>
  16.             <id>orientechnologies-repository</id>
  17.             <name>Orient Technologies Maven2 Repository</name>
  18.             <url>http://www.orientechnologies.com/listing/m2</url>
  19.             <snapshots>
  20.                 <enabled>true</enabled>
  21.                 <updatePolicy>always</updatePolicy>
  22.             </snapshots>
  23.         </repository>
  24.     </repositories>
  25.     ...
Prima di vedere un po' di codice va fatta una premessa: esistono diverse API per utilizzare OrientDB, ognuna delle quali ha i suoi pro e i suoi contro. Per maggiori informazioni c' la pagina ufficiale con i suggerimenti di cosa usare in base al caso specifico.

In questa puntata utilizzeremo le API di Document Database, che offrono un buon compromesso tra flessibilit e velocit a runtime. Nelle prossime puntate analizzeremo l'interfaccia Object Database, in grado di bindare automaticamente record a POJO senza tool di ORM (come Hibernate o DataNucleus) e le GraphDB API per lavorare con i grafi.

Il nostro primo esempio creer un database come embedded sul file system locale e vi inserir un documento. Un documento un record con campi (field) arbitrari. Un documento pu appartenere a una classe definita (vedi puntate precedenti). La prima operazione la creazione di un'istanza di database, che punta a un URL dove risiede il database:
  1. ODatabaseDocumentTx db = new ODatabaseDocumentTx("local:/tmp/db/scratchpad");
In questo caso abbiamo utilizzato il protocollo local e quindi il database si trover in una cartella del file system locale. Se utilizzate Windows il path sar simile a questo:
  1. ODatabaseDocumentTx db = new OdatabaseDocumentTx("local:C:/temp/db/scratchpad");

Il database non esiste ancora, possiamo crearlo utilizzando la console (vedi puntate precedenti), o via codice tramite il metodo create():
  1. db.create();

Per aprire un database esistente, invece, occorre utilizzare il metodo open(<user-name>, <user-passwd>):
  1. db.open("admin", "admin");
L'utente admin viene creato di default in ogni database. In ambiente di produzione bisogna ricordarsi di modificare la password di default admin. Per creare un nuovo documento necessario istanziarlo dal database a cui far riferimento:
  1. ODocument doc = db.newInstance();

Per popolare il documento con alcuni valori si deve utilizzare il metodo field(<field-name>, <field-value>):
  1. doc.field("name", "Jay");
  2. doc.field("surname", "Miner");
Alla fine salviamo il documento invocando il metodo save():
  1. doc.save();
Per chiudere il database si utilizzi il metodo close():
  1. db.close();

Una nota importante: OrientDB installa un hook nella JVM per assicurarsi che tutti i database aperti vengano chiusi quando la JVM viene arrestata. E' comunque consigliato chiudere il database quando non pi necessario per liberare preziose risorse e, sopratutto, assicurarsi che tutti i dati in memoria vengano scritti correttamente su disco.

Ecco un esempio completo:
  1. public class OrientDBTest {
  2.   public static void main(String[] args) {
  3.     ODatabaseDocumentTx db = new ODatabaseDocumentTx("local:/tmp/db/scratchpad");
  4.     db.create();
  5.  
  6.     ODocument doc = db.newInstance();
  7.     doc.field("name", "Jay");
  8.     doc.field("surname", "Miner");
  9.     doc.save();
  10.  
  11.     db.close();
  12.   }
  13. }
La prossima puntata sar dedicata all'esecuzione di query utilizzando le API Java.
Precedente: Nuovo sito e maggiore indipendenza per il progetto Qt di Nokia
Successiva: PyCloud, il Pitone nella nuvola
Copyright Programmazione.it™ 1999-2016. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.43 secondi.