SlideShare uma empresa Scribd logo
1 de 29
PROGRAMAÇÃO PARA
DISPOSITIVOS MÓVEIS
Banco de Dados
Objetivos da aula
 Banco de Dados
 Exercício
Qual banco de dados o Android tem
integração?
SQLite
Cada aplicação pode criar um ou mais banco
de dados.
Os bancos de dados da sua aplicação
ficam localizados em:
/data/data/nome_pacote_app/databases
Um banco de dados é vísivel somente
a aplicação que o criou.
Podemos criar um banco de dados de
várias formas:
Programaticamente, via API;
Usando um cliente, por exemplo o
SQLite Expert Personal
(http://www.sqliteexpert.com/);
Ou pelo aplicativo SQLite3 através do
console do emulador.
Vamos focar na melhor prática, a
criação e a manutenção de um banco
de dados via API.
Como criaremos um banco?
Precisamos estender a classe
SQLiteOpenHelper e implementar os
métodos onCreate() e onUpgrade().
Os métodos onCreate() e
onUpgrade() são chamados
automaticamente pelo Android
quando o banco de dados precisa ser
criado ou atualizado.
Através da instância da classe que estende
SQLiteOpenHelper, utilizamos o método
getWritableDatabase() para abrirmos uma conexão
com o banco de dados, onde podemos executar
comandos SQL da seguinte forma:
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL(“create table carro (_id
integer primary key autoincrement, nome
text not null, placa text not null, ano
text not null);”);
Controlamos as atualizações do
banco de dados por meio de uma
versão, definida por nós, um valor
incremental.
Vamos observar alguns outros
comandos:
Para inserir um registro, utilizamos o
método db.insert(tabela,
nullColumnHack, valores).
ContentValues valores = new ContentValues();
valores.put(“nome”, “Carro”);
valores.put(“placa”, “AAA-1111”);
valores.put(“ano”, “2008”);
bb.insert(“carro”, null, valores);
É recomendado criar uma coluna com
o nome _id que seja auto
incremento.
Para atualizar um registro, utilizamos
o método db.update(tabela, valores,
where, whereArgs).
String id = “1”;
ContentValues valores = new ContentValues();
valores.put(“nome”, “novo nome”);
valores.put(“placa”, “AAA-1111”);
valores.put(“ano”, “2008”);
db.update(“carro”, valores, “_id = ?”, new String[]{id});
Para deletar um registro, utilizamos o
método db.delete(tabela, where,
whereArgs).
String id = “1”;
db.delete(“carro”, “_id = ?”, new String[]{id});
Para buscar registros, utilizamos o
método db.query(distinct, tabela,
colunas, selecao, selecaoArgs,
groupBy, orderBy), que nos retorna
um objeto do tipo Cursor, similar ao
ResultSet da API do JDBC.
Cursor c = db.query(“carro”, new String[] {“_id”, “nome”,
“placa”, “ano”}, “nome=?”, new String[] {“nome consultado”},
null, null, null);
if (c.getCount() > 0) {
Carro carro = new Carro();
c.moveToFirst();
carro.id = c.getLong(0);
carro.nome = c.getString(1);
carro.placa = c.getString(2);
carro.ano = c.getInt(3);
}
Até a próxima!

Mais conteúdo relacionado

Destaque

Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RRenato
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)Ricardo Longa
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intentsRoberson Alves
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Ricardo Longa
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidAline Diniz
 
Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Ricardo Longa
 
Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Ricardo Longa
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)Natanael Fonseca
 
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonMinicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonRicardo Longa
 
Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Ricardo Longa
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Ricardo Longa
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4Jose Berardo
 

Destaque (20)

Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.R
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento android
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intents
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com Android
 
Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)
 
Oficina Sesc Android - V1
Oficina Sesc Android - V1Oficina Sesc Android - V1
Oficina Sesc Android - V1
 
Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)Aula 29/05 (AlarmManager)
Aula 29/05 (AlarmManager)
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonMinicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
 
Tutorial Android - Activities
Tutorial Android - ActivitiesTutorial Android - Activities
Tutorial Android - Activities
 
Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 

Semelhante a Aula 12/06 (SQLite)

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 6Erisvaldo Junior
 
Slide 03 conectando no banco de dados, criação de helpers
Slide 03   conectando no banco de dados, criação de helpersSlide 03   conectando no banco de dados, criação de helpers
Slide 03 conectando no banco de dados, criação de helpersRaniere de Lima
 
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 5Erisvaldo Junior
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralHelder Lopes
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo TextoCaio Lima
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPressLeandrinho Vieira
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Guilherme Baccas
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)Gabriel Bugano
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. ModeloMarcos Bezerra
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Thyago Maia
 
Tutorial da google maps javascript api v3
Tutorial da google maps javascript api v3Tutorial da google maps javascript api v3
Tutorial da google maps javascript api v3Abimael Fernandes
 

Semelhante a Aula 12/06 (SQLite) (20)

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
 
Slide 03 conectando no banco de dados, criação de helpers
Slide 03   conectando no banco de dados, criação de helpersSlide 03   conectando no banco de dados, criação de helpers
Slide 03 conectando no banco de dados, criação de helpers
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Vb
VbVb
Vb
 
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
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Java13
Java13Java13
Java13
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geral
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)
 
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
 
Apostila Android
Apostila AndroidApostila Android
Apostila Android
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. Modelo
 
Crud
CrudCrud
Crud
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI Android
 
Iniciando com action script 3
Iniciando com action script 3Iniciando com action script 3
Iniciando com action script 3
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
 
Tutorial da google maps javascript api v3
Tutorial da google maps javascript api v3Tutorial da google maps javascript api v3
Tutorial da google maps javascript api v3
 

Mais de Ricardo Longa

Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
 
JSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesJSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesRicardo Longa
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRicardo Longa
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowRicardo Longa
 

Mais de Ricardo Longa (7)

Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenho
 
Adopt a JSR
Adopt a JSRAdopt a JSR
Adopt a JSR
 
JSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesJSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web Services
 
JBoss Forge 2
JBoss Forge 2JBoss Forge 2
JBoss Forge 2
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Open Networking
Open NetworkingOpen Networking
Open Networking
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools Flow
 

Aula 12/06 (SQLite)

  • 2. Objetivos da aula  Banco de Dados  Exercício
  • 3. Qual banco de dados o Android tem integração?
  • 5. Cada aplicação pode criar um ou mais banco de dados.
  • 6. Os bancos de dados da sua aplicação ficam localizados em: /data/data/nome_pacote_app/databases
  • 7. Um banco de dados é vísivel somente a aplicação que o criou.
  • 8. Podemos criar um banco de dados de várias formas:
  • 10. Usando um cliente, por exemplo o SQLite Expert Personal (http://www.sqliteexpert.com/);
  • 11. Ou pelo aplicativo SQLite3 através do console do emulador.
  • 12. Vamos focar na melhor prática, a criação e a manutenção de um banco de dados via API.
  • 14. Precisamos estender a classe SQLiteOpenHelper e implementar os métodos onCreate() e onUpgrade().
  • 15. Os métodos onCreate() e onUpgrade() são chamados automaticamente pelo Android quando o banco de dados precisa ser criado ou atualizado.
  • 16. Através da instância da classe que estende SQLiteOpenHelper, utilizamos o método getWritableDatabase() para abrirmos uma conexão com o banco de dados, onde podemos executar comandos SQL da seguinte forma: SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL(“create table carro (_id integer primary key autoincrement, nome text not null, placa text not null, ano text not null);”);
  • 17. Controlamos as atualizações do banco de dados por meio de uma versão, definida por nós, um valor incremental.
  • 18. Vamos observar alguns outros comandos:
  • 19. Para inserir um registro, utilizamos o método db.insert(tabela, nullColumnHack, valores).
  • 20. ContentValues valores = new ContentValues(); valores.put(“nome”, “Carro”); valores.put(“placa”, “AAA-1111”); valores.put(“ano”, “2008”); bb.insert(“carro”, null, valores);
  • 21. É recomendado criar uma coluna com o nome _id que seja auto incremento.
  • 22. Para atualizar um registro, utilizamos o método db.update(tabela, valores, where, whereArgs).
  • 23. String id = “1”; ContentValues valores = new ContentValues(); valores.put(“nome”, “novo nome”); valores.put(“placa”, “AAA-1111”); valores.put(“ano”, “2008”); db.update(“carro”, valores, “_id = ?”, new String[]{id});
  • 24. Para deletar um registro, utilizamos o método db.delete(tabela, where, whereArgs).
  • 25. String id = “1”; db.delete(“carro”, “_id = ?”, new String[]{id});
  • 26. Para buscar registros, utilizamos o método db.query(distinct, tabela, colunas, selecao, selecaoArgs, groupBy, orderBy), que nos retorna um objeto do tipo Cursor, similar ao ResultSet da API do JDBC.
  • 27. Cursor c = db.query(“carro”, new String[] {“_id”, “nome”, “placa”, “ano”}, “nome=?”, new String[] {“nome consultado”}, null, null, null); if (c.getCount() > 0) { Carro carro = new Carro(); c.moveToFirst(); carro.id = c.getLong(0); carro.nome = c.getString(1); carro.placa = c.getString(2); carro.ano = c.getInt(3); }
  • 28.