Mono: la nueva plataforma de desarrollo Open Source DB4o Alberto Villanueva estoyapuntado@hotmail.com Abril 2005 dotnetgroup ESIDE Universidad de Deusto This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
DB4o: BD Orientada a objetos Base de datos nativa orientada a objetos para Java,.NET y Mono. Fácil uso No hay instalación: uso 1 DLL Descargar en: www.db4o.com Incluida la API y el tutorial( HTML y PDF).
CÓMO FUNCIONA Colocamos la librería dinámica en la carpeta donde tengamos el proyecto. Dentro del fichero fuente, incluimos: using com.db4o; Al compilar, hay que añadir: -r:db4o.dll mcs -r:db4o.dll <nombrefichero>.cs
INSERCIÓN Primero, abrimos la base de datos Db4o.openFile( "..\..\ciclistas.yap"); Devuelve un ObjectContainer Creamos el objeto a insertar. Ciclista c = new Ciclista( Olano, 38); Insertamos en la base de datos. <databasename>.set(c); Cerramos la base de datos. <databasename>.close();
SELECCIÓN (I) Existen dos formas de realizar una consulta en Db4o: QBE: Query By Example Query API
QBE (I) Fácil de usar y intuitivo. Problemas: Consultas complejas no pueden realizarse. Valores por defecto no pueden consultarse.
QBE(II): HOW TO Se abre la base de datos. Se crea el prototipo(es un objeto). Ciclista c = new Ciclista(null, 0); -> Todos Ciclista c = new Ciclista( Freire, 0); -> Concreto Se ejecuta la consulta. ObjectSet result = db.get(c); Recorremos el resultado, para visualizar. while (result.hasnext()) Console.WriteLine(result.next()); Cerramos la base de datos.
SELECCIÓN (III): QUERY API Pueden realizarse consultas complejas. Pueden obtenerse los valores por defecto. Permiter poner restricciones a las consultas. La restricción se encarga de añadir o eliminar al candidato del resultado. En el fichero fuente, hay que añadir: using com.db4o.query;
QUERY API: HOW TO (I) Se abre la base de datos. Creamos un objeto QUERY. Query query = db.query(); Se indica la restricción de tipo.[opcional] query.constrain(typeof(ciclista)); Se indica las características de la consulta. query.descend("nombre").constrain("freire"); Se ejecuta la consulta. ObjectSet result = query.execute(); Se cierra la base de datos.
QUERY API: HOW TO (II) Los que no sean... : query.descend("nombre").constrain("freire").not(); Se pueden crear objetos de tipo 'Constraint' Permiten ejecutar conjunciones, disyunciones,... Constraint restriccion = consulta4.descend("nombre"). constrain("heras"); consulta4.descend("edad").constrain(38).and(restriccion); Ordenar resultados: consulta5.descend("nombre").orderdescending(); consulta5.descend("nombre").orderascending();
QUERY API (III) Permite administrar objetos estructurados. Permite administrar objetos heredados. Permite administrar transacciones. Permite trabajar de forma remota.
ELIMINACIÓN Primero, abrimos la base de datos Db4o.openFile( "..\..\ciclistas.yap"); Devuelve un ObjectContainer Creamos el objeto a eliminar. Ciclista c = new Ciclista( Olano, 38); Realizamos una selección para ver si existe el ciclista a eliminar. Eliminamos en la base de datos. <databasename>.delete(c); Cerramos la base de datos. <databasename>.close();
ACTUALIZACIÓN Primero, abrimos la base de datos Db4o.openFile( "..\..\ciclistas.yap"); Devuelve un ObjectContainer Creamos el objeto a actualizar. Ciclista c = new Ciclista( Olano, 38); Realizamos una selección para ver si existe el ciclista a actualizar. Modificamos sus atributos y actualizamos. <databasename>.set(c); Cerramos la base de datos. <databasename>.close();