Blog
All Blog Posts | Next Post | Previous PostCurso Rápido de TMS Aurelius - Primeros pasos
Tuesday, February 26, 2013
Aunque TMS Aurelius tiene una extensiva documentación, muchas veces recibimos pedidos de más ejemplos, explicaciones, y códigos fuente sobre como realizar determinadas tareas. Así que iniciaremos aquí una serie de posts sobre como utilizar TMS Aurelius. Todo lo que expondremos aquí está también cubierto en la documentación, pero en este blog nos centraremos en más en casos de uso reales que en cubrir cada característica específica. En resumen, una forma alternativa de mostrar como utilizarlo.Comenzando por el principio, mostraremos una aplicación mínima que utiliza TMS Aurelius. Supongamos que tenemos una clase de tipo TCustomer (cliente) mapeada de la siguiente manera:
unit Customer; interface uses Aurelius.Mapping.Attributes; type [Entity, Automapping] TCustomer = class private FId: integer; FName: string; public property Id: integer read FId write FId; property Name: string read FName write FName; end; implementation end.
program GettingStarted; {$APPTYPE CONSOLE} uses Aurelius.Drivers.Interfaces, Aurelius.Drivers.SQLite, Aurelius.Engine.DatabaseManager, Aurelius.Engine.ObjectManager, Aurelius.SQL.SQLite, Customer; var Connection: IDBConnection; Manager: TObjectManager; Customer: TCustomer; begin Connection := TSQLiteNativeConnectionAdapter.Create('test.db'); Manager := TObjectManager.Create(Connection); Customer := TCustomer.Create; Customer.Name := 'First customer'; Manager.Save(Customer); Manager.Free; WriteLn('Customer saved.'); ReadLn; end.
1. Una clase para persistir. En éste ejemplo, es la clase TCustomer
2. Un mapeado entre la clase y la base de datos. Esto se hace mediante los atributos [Entity] and [Automapping]. En este caso las propiedades son mapeadas automáticamente a los campos de la tabla, pero podríamos definir un mapeado personalizado si así lo quisiéramos. A las instancias de objetos creados por Aurelius las llamaremos "Entidades".
3. Una conexión a la base de datos. En el ejemplo es la variable Connection, que implementa la interfaz "IDBConnection". Aquí nos estamos conectando a una base de datos local SQLite, y para ello necesitamos utilizar el adapter TSQLiteNativeConnectionAdapter. O sea, siempre necesitaremos un adapter que haga de puente entre el "mundo" de la base de datos relacional y el "mundo" de los objetos en el programa. En Windows es necesario asegurarse que la dll sqlite3.dll está en una carpeta donde Windows pueda encontrarla. En OSX e iOS, SQLite es parte del sistema operativo.
4. Un "Object Manager" (administrador de objetos) para grabar y administrar las entidades. La segunda línea de código en el ejemplo anterior crea un object manager, que se encarga de grabar los objetos en la base de datos especificada por la interfaz IDBConnection.
Finalmente, el código simplemente crea una instancia del objeto TCustomer, llena sus propiedades, y lo graba en la base de datos. ¡Esta es su primer aplicación con TMS Aurelius!
Un dato adicional: Si el archivo test.db (nuestra base de datos) no existiera, Aurelius lo crearía por usted. Si usted desea decirle explícitamente a Aurelius que cree la base de datos, eso se podría haced con el siguiente código:
procedure CreateDatabase(Connection: IDBConnection); var DBManager: TDatabaseManager; begin DBManager := TDatabaseManager.Create(Connection); DBManager.BuildDatabase; DBManager.Free; end;
Wagner Landgraf
This blog post has not received any comments yet.
All Blog Posts | Next Post | Previous Post