com SQLite na API do Android via classes SQLiteOpenHelper e SQLiteDatabase • Até usável para poucas tabelas... • Entendiante para modelos de dados um pouco maiores... • Não queremos escrever mais SQL, usar Cursor, etc, etc... MOTIVAÇÃO
• Quais os tipos de relacionamentos suportados? • Oferece suporte à transações? • Oferece suporte à lazy loading? • Oferece Query Builder? E otimização sobre consultas? • Oferece API assíncrona? • Código SQL gerado é robusto? • Oferece suporte à migração? SOLUÇÕES DE ORM
e maturidade realmente aceitável... OPÇÕES DE ORM Framework Abordagem Acesso Tamanho Maturidade ORMLite JPA DAO / Entity 280 Kb 2+ anos greenDAO Code- generation DAO / Entity 70 Kb 2+ anos ORMAN JPA Entity 170 Kb 3+ anos AndrORM Custom - 54 Kb 1+ ano
nossos sonhos ! • A imensa maioria dos projetos menos conhecidos não atende quase nenhum desses pontos ! • A escolha depende da necessidade do projeto ! ALGUMAS RESPOSTAS
Model<Construction> { @PrimaryKey(autoIncrement = true) public int id; public String name; public Client client; public Local local; public Date deadline; public boolean done; public String picturePath; @OneToMany(toType = Journal.class, onField = "construction") public EntityList<Construction, Journal> journals = new EntityList<Construction, Journal> (Construction.class, Journal.class, this); }
SQL • Entity possui outros métodos para fetching - fetchAll - fetchQuery - fetchSingle - fetchSingleValue • Entity possui método execute(query) MAIS SOBRE CONSULTAS
solução ORM • DB com tabelas pequenas que precisem de suporte à relacionamentos, mesmo que várias! • Aplicações que possam viver bem sem suporte à transações • Aplicações sem potencial de migração (set once, run forever) QUAL O PROJETO PARA ORMAN?