SlideShare ist ein Scribd-Unternehmen logo
1 von 24
PERSISTÊNCIA
Arthur Emanuel de Oliveira Carosia
Persistência com SQLite
2
 SQLite
 Disponível na plataforma Android
 Ao contrário da maioria dos bancos de dados SQL,
não necessita de um processo servidor.
 armazena as tabelas, views, índices e triggers em
apenas um arquivo em disco
 é acessível por qualquer classe da aplicação que o
criou, mas não pode ser acessado por outra
aplicação.
Criação do Banco de Dados
3
 Herdar a classe SQLiteOpenHelper
Persistência com SQLite
4
 Tanto a criação do banco quanto a sua atualização só
acontecem de fato quando obtemos uma instância de
SQLiteDatabase e não quando instanciamos o
DatabaseHelper.
Persistência com SQLite
5
 Tanto a criação do banco quanto a sua atualização só
acontecem de fato quando obtemos uma instância de
SQLiteDatabase e não quando instanciamos o
DatabaseHelper.
Persistência com SQLite
6
 Inserção
 Preparando o Content Values
Persistência com SQLite
7
 Inserção
 Chamada do método insert
Persistência com SQLite
8
 Ao encerrar a Activity, fechar a conexão com o
Banco.
Persistência com SQLite
9
 Buscando
 Montar a consulta
Persistência com SQLite
10
 Buscando
 Métodos de manipulação do cursor
Persistência com SQLite
11
 Buscando
 Métodos de manipulação do cursor
Buscando...
12
//.... Montando o hashmap
Remover
13
Boas Práticas
14
 Utilizar DAO
 padrão para implementar a separação da lógica
de negócio das regras de acesso a banco de
dados.
Exercício
15
 Incrementar na aplicação trabalhada nas
últimas aulas duas activities com banco de
dados implementado:
 Login.
 Nesta activity, o usuário e senha digitados devem ser
comparados aos já existentes no banco de dados. Se
existir um usuário e senha conforme digitado, a
aplicação pode seguir seu fluxo.
 Cadastro
 Nesta activity, o usuário pode se cadastrar digitando
seu nome de usuário, nome completo, email e senha.
ListView
16
ListView
17
 Como a necessidade de criar esses tipos de listagens é
bastante frequente, usaremos:
 ListActivity.
 Esta classe já possui um widget ListView associado
bastando que a ele seja atribuído um ListAdapter para
prover os itens que serão exibidos na lista.
 Semelhante ao Spinner.
ListView
18
 Classe que além de herdar de ListActivity, também
implemente OnItemClickListener com o objetivo de
tratar o evento disparado quando um item da lista é
selecionado.
ListView
19
 onCreate:
 criar um novo ArrayAdapter passando o layout
desejado e os itens.
 Recuperamos a ListView associada
 getListView
 A essa ListView, atribuímos um listener que é a
própria atividade
 Layout linha da ListView.
 android.R.layout.simple_list_item_1
ListView
20
ListView
21
Selecionar dados do
banco.
ListView
22
 Quando um elemento da lista for selecionada,
gostaríamos de executar alguma ação. Neste caso,
iremos para uma próxima Activity.
 Implementamos isto no método onItemClick, que é o
método de OnItemClickListener invocado pela ListView
quando um item é escolhido.
Exercício
23
 Utilizar uma ListView para listar todos clientes
cadastrados na aplicação.
Referências
24
 Google Android. Crie Aplicações para
Celulares e Tablets. Monteiro, J. Bosco. Casa
do Código.
 Desenvolvimento Mobile com Android. K19
Treinamentos.
 Android Developers. Disponível em:
http://developer.android.com/.

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (20)

Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de Persistência
 
Planejamento - DDMI - IFSP
Planejamento - DDMI - IFSPPlanejamento - DDMI - IFSP
Planejamento - DDMI - IFSP
 
Projeto Android
Projeto AndroidProjeto Android
Projeto Android
 
Aula 03 - Interface gráfica - Parte 1
Aula 03 - Interface gráfica - Parte 1Aula 03 - Interface gráfica - Parte 1
Aula 03 - Interface gráfica - Parte 1
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
CSS
CSSCSS
CSS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 
CSS 3
CSS 3CSS 3
CSS 3
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações Android
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google Android
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJatai
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumni
 

Ähnlich wie Aula05 - Android - Persistência

Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
Erisvaldo Junior
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dados
Raul Dias
 
SelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView AndroidSelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView Android
Vinícius Thiengo
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
julianabdpaiva
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
Erisvaldo Junior
 
Desenvolvimento de plugins WordPress
Desenvolvimento de plugins WordPressDesenvolvimento de plugins WordPress
Desenvolvimento de plugins WordPress
Leandrinho Vieira
 

Ähnlich wie Aula05 - Android - Persistência (20)

Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Curso Básico Android - Aula 04
Curso Básico Android - Aula 04Curso Básico Android - Aula 04
Curso Básico Android - Aula 04
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dados
 
Tudo sobre listas no android
Tudo sobre listas no androidTudo sobre listas no android
Tudo sobre listas no android
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Orm android
Orm androidOrm android
Orm android
 
SelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView AndroidSelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView Android
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
 
Course Hibernate 2008
Course Hibernate 2008Course Hibernate 2008
Course Hibernate 2008
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
 
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e ElasticsearchTDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
 
Desenvolvimento de plugins WordPress
Desenvolvimento de plugins WordPressDesenvolvimento de plugins WordPress
Desenvolvimento de plugins WordPress
 

Mehr von Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Arthur Emanuel
 

Mehr von Arthur Emanuel (19)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de Repetição
 
Java: Condicionais
Java: CondicionaisJava: Condicionais
Java: Condicionais
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Aula05 - Android - Persistência

  • 2. Persistência com SQLite 2  SQLite  Disponível na plataforma Android  Ao contrário da maioria dos bancos de dados SQL, não necessita de um processo servidor.  armazena as tabelas, views, índices e triggers em apenas um arquivo em disco  é acessível por qualquer classe da aplicação que o criou, mas não pode ser acessado por outra aplicação.
  • 3. Criação do Banco de Dados 3  Herdar a classe SQLiteOpenHelper
  • 4. Persistência com SQLite 4  Tanto a criação do banco quanto a sua atualização só acontecem de fato quando obtemos uma instância de SQLiteDatabase e não quando instanciamos o DatabaseHelper.
  • 5. Persistência com SQLite 5  Tanto a criação do banco quanto a sua atualização só acontecem de fato quando obtemos uma instância de SQLiteDatabase e não quando instanciamos o DatabaseHelper.
  • 6. Persistência com SQLite 6  Inserção  Preparando o Content Values
  • 7. Persistência com SQLite 7  Inserção  Chamada do método insert
  • 8. Persistência com SQLite 8  Ao encerrar a Activity, fechar a conexão com o Banco.
  • 9. Persistência com SQLite 9  Buscando  Montar a consulta
  • 10. Persistência com SQLite 10  Buscando  Métodos de manipulação do cursor
  • 11. Persistência com SQLite 11  Buscando  Métodos de manipulação do cursor
  • 14. Boas Práticas 14  Utilizar DAO  padrão para implementar a separação da lógica de negócio das regras de acesso a banco de dados.
  • 15. Exercício 15  Incrementar na aplicação trabalhada nas últimas aulas duas activities com banco de dados implementado:  Login.  Nesta activity, o usuário e senha digitados devem ser comparados aos já existentes no banco de dados. Se existir um usuário e senha conforme digitado, a aplicação pode seguir seu fluxo.  Cadastro  Nesta activity, o usuário pode se cadastrar digitando seu nome de usuário, nome completo, email e senha.
  • 17. ListView 17  Como a necessidade de criar esses tipos de listagens é bastante frequente, usaremos:  ListActivity.  Esta classe já possui um widget ListView associado bastando que a ele seja atribuído um ListAdapter para prover os itens que serão exibidos na lista.  Semelhante ao Spinner.
  • 18. ListView 18  Classe que além de herdar de ListActivity, também implemente OnItemClickListener com o objetivo de tratar o evento disparado quando um item da lista é selecionado.
  • 19. ListView 19  onCreate:  criar um novo ArrayAdapter passando o layout desejado e os itens.  Recuperamos a ListView associada  getListView  A essa ListView, atribuímos um listener que é a própria atividade  Layout linha da ListView.  android.R.layout.simple_list_item_1
  • 22. ListView 22  Quando um elemento da lista for selecionada, gostaríamos de executar alguma ação. Neste caso, iremos para uma próxima Activity.  Implementamos isto no método onItemClick, que é o método de OnItemClickListener invocado pela ListView quando um item é escolhido.
  • 23. Exercício 23  Utilizar uma ListView para listar todos clientes cadastrados na aplicação.
  • 24. Referências 24  Google Android. Crie Aplicações para Celulares e Tablets. Monteiro, J. Bosco. Casa do Código.  Desenvolvimento Mobile com Android. K19 Treinamentos.  Android Developers. Disponível em: http://developer.android.com/.