orm com air e sql lite
DESCRIPTION
Slides Adobe @ the museumTRANSCRIPT
ORM com AIR e SQLite
+
Sobre mim• Sobre mim• Web Developer Freelancer• Comunidade portuguesa de PHP
Blog: blog.lookatitude.comtwitter: @miguelpemail: [email protected]
AIR e SQLite• Criar uma ligação á base de dados
sqlConnection = new SQLConnection(); var dbFile:File = File.applicationStorageDirectory.resolvePath(“contactos.db"); sqlConnection.open(dbFile);
SQL “statements”• SQL Language
• Exemplo, receber todos os dados da tabela
contactos:
SELECT * FROM contactos;
Executar o SQL • Executar o SQL e receber os dados no AIR
sqlStatement.sqlConnection = sqlCon;sqlStatement.text = “SELECT * FROM contactos”;sqlStatement.execute();
• Receber os resultadosvar result:Array = sqlStatement.getResults().data;
O códigosqlConnection = new SQLConnection();var dbFile:File = File.applicationStorageDirectory.resolvePath(“contactos.db");sqlConnection.open(dbFile);
sqlStatement.sqlConnection = sqlCon;sqlStatement.text = “SELECT * FROM contactos”;sqlStatement.execute();var result:Array = sqlStatement.getResults().data;
Desvantagens• Ter de aprender mais uma linguagem
• Repetição
• Difícil manutenção
Design patterns• tableGateway• Active Record• DAO (Data Access Object)• Data Mapper• ORM
ORM• ORM (Object relational mapping)• Mapear tabelas em objectos• Mapear relações entre tabelas• Reflectir as alterações dos objectos na base de
dados
FlexORM, o que faz?• Operações como: Salvar, Actualizar, Apagar, load, e FindAll• Cria e actualiza o esquema da base de dados automaticamente• Associações n:1, 1:n e 1:1, e cria automáticamente a tabela de
associação• Cascade guardar/actualizar/apagar• Mapeamento de heranças• FK constraints (using triggers in SQLite)• Cria automaticamente os indeces na base de dados• Transacções• Lazy loading das associações• Asynchronous API• E mais… muito mais.
Implementations• Hibernate (JAVA)• NHibernate (.NET)• Doctrine (PHP)• Django (Python)• FlexORM (Flex)
Como funciona?• Download:
http://flexorm.riaforge.org/
• Adicionamos ao compilador as directivas:-keep-as3-metadata+=Table,Id,Column,ManyToOne,OnetoMany,ManyToMany, Transient
Criar um ProjectoAGENDA DE CONTACTOS
• Uma base de dados• Uma tabela
Dados: Nome Email Morada
Agenda de Contactos
Demo
Q&A