Вы находитесь на странице: 1из 23

ORM Android

Lucas Aquiles

Roteiro
1.Introduo 2. SQLiteDatabase 3. ORM 4. ORMlite
1. dependencias (ormlite-core.jar, ormlite-android.jar) 2. configurao 3. Annotations 4. Annotations da JPA

5. OrmLiteSqliteOpenHelper 6. Criar e Deletar tabelas 7. ORMLiteBase... 8. DAO<?,ID> 9. Aplicao de Exemplo

Introduo

SQLiteDatabase

Utilizada para gerenciar banco de dados SQLite oferece metodos para criar, apagar e executar comandos SQL Realiza tarefas comuns em gerenciamento de banco de dados relacional Armazenado em:
/data/data/<package_name>/databases

ORM

Permite interagir de forma orientada a objetos com um banco de dados relacional Cada classe representa uma tabela no banco de dados Cada atributo dessa classe representa os campos da tablea Cada objeto instanciado representa uma linha que pode ser inserida na tabela

ORM

Frameworks ORM mais conhecidos: Java

Hibernate
http://www.hibernate.org/

TopLink
http://www.oracle.com/technetwork/middleware/toplink/index-085257.html

ORMlite

fornece algumas simples e leves funcionalidade para persistir objetos Java para bancos de dados SQL, evitando a complexidade e a sobrecarga de mais pacotes padro ORM. http://ormlite.com/

ORMLite

Suporte nativo a chamadas para APIs de banco de dados SQLite do Android Permite o uso de Annotations da JPA, alm das prprias annotations do ORMlite para mapear as classes Permite relalizar relacionamento entre as classes Construir querys simples e complexas Uso de transactions

ORMLite

Annotations da JPA

ORMLite

Annotations do ORMlite

ORMlite

Dependncias

ormlite-android-4.22.jar ormlite-core-4.22.jar

Disponvel no
http://sourceforge.net/projects/ormlite/files/releases/com/j256/ormlite/

ORMlite

Configurao

Adicionar os jars do orm-lite-core.xxx.jar e ormlite-android.xxx.jar no buildpath da aplicao Criar uma classe que extenda de OrmLiteSqliteOpenHelper

Semelhante ao SQLOpenHelper Sobrescrever os mtodos onCreate, onUpdate e dentro desses mtodos criada ou atualizada as tabelas E passar um Context no construtor da classe

ORMLite

Dependncias

ORMLite

Annotations do ORMlite

@DatabaseTable @DatabaseField

Atributos

ColumnName DefaultValue width CanBeNull Id GeneratedId foreign foreignAutoRefresh

ORMLite

Annotations da JPA

@Entity @Id @GeneratedValue @Column Relacionamentos


@OneToOne @ManyToOne

Obs: voc precisa adicionar o javax.persistence_xxx.jar no buildpath da aplicao

ORMlite

OrmLiteSqliteOpenHelper

Classe que cria e atualiza o banco de dados quando a aplicao instalada

onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource) onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion)

Prover classes DAOs que podem ser usadas por outras classes Bem semelhante ao SQLiteOpenHelper, s que sem os comandos SQL

ORMLite

Criar e deletar tabelas

no mtodo onCreate da classe que extende ORMLiteSQLiteOpenHelper


TableUtils.createTable(connectionSource, Usuario.class, true);

no onUpdate

TableUtils.dropTable(connectionSource, Usuario.class, true);

ORMLite

ORMLiteBase...

Activity ListActivity TabActivity Service

Essas classes fornecem o mtodo getHelper() para fazer acesso auxiliar ao banco de dados

ORMLite

ORMLiteBase...

ORMlite

Alternativas ao ORMLiteBaseActivity

Fazendo chamadas pelo OpenHelperManager.getHelper(Context context, Class openHelperClass) Que retorna um Helper e no final da operao deve ser chamado o mtodo OpenHelperManager.release()

ORMLite

DAO<?,ID>

Cada DAO tem dois parmetros: uma a entidade e a outra a coluna ID usada pra especificar uma linha da tabela Criado atravs do DaoManager

ORMLite

DAO<?,ID>

alguns mtodos do DAO


queryForId(Id id) QueryForAll() create(T data) update(T data) delete(T data) queryRaw(String query) executeRaw(String statement) CountOf()

Aplicao de exemplo

Cadastro de produtos e categorias Um produto tem uma categoria e uma categoria tem vrios produtos