Android Banco de Dados. Ivan Nicoli



Documentos relacionados
Programação para Android. Aula 08: Persistência de dados SQL

Programação para Dispositivos Móveis. Banco de Dados (SQLite)

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Armazenamento de dados

Android #4. antonio deusany de carvalho junior

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Programação para Dispositivos Móveis

Programação para a Plataforma Android Aula 11. Banco de Dados

Programação de Dispositivos Móveis

Provedores de Conteúdo

Android Layout Manager. Ivan Nicoli

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Android e Bancos de Dados

Armazenamento de Dados

Programação de Dispositivos Móveis

persistência de dados

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Armazenamento em Banco de Dados em Aplicações Android. Prof. Fellipe Aleixo

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Programação para Dispositivos Móveis

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

1. SQLite No Android 2. API de Acesso Listagem 1 SQLiteDatabase SQLiteOpenHelper Listagem 1 Android Studio SQLiteOpenHelper Android Studio

AULA 2. Minicurso PET-EE UFRN

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

Armazenamento de Dados

Tutorial Android Speech

Projeto de Banco de Dados: Empresa X

Programa de Dispositivos Móveis

Introdução à linguagem SQL

Firebase. Acesse o site Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Tutorial sobre criação de regras de negócio para Android. Igor Rafael Santos da Silva

Programação para Dispositivos Móveis

Programa de Dispositivos Móveis

Introdução ao SQL. Aécio Costa

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Fragments. Criar um novo projeto. Selecionar a API. Navigation Drawer Activity. Fragments. Luiz Eduardo Guarino de Vasconcelos

Capítulo 04: Persistência com SQLite

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Tutorial: Utilização do sqlite no Android (Parte I)

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Programação para Android. Aula 06: Activity, menus e action bar

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Android Activity. Ivan Nicoli

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Desenvolvimento Java para Dispositivos - Android

Criando as primeiras telas (Activity)

MySQL. Prof. César Melo. com a ajuda de vários

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

ANDROID APPLICATION PROJECT

Trabalhando com Mensagens. File > New > New Project. Uso de mensagens (Toast) Luiz Eduardo Guarino de Vasconcelos

Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Desenvolvimento Android.

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Escrito por Neri Neitzke Qua, 12 de Outubro de :40 - Última atualização Seg, 26 de Março de :50

Android BANCO DE DADOS - SQLITE. Prof. Joaquim assunção.

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Gerenciamento de Dados e Informação Fernando Fonseca. Graduação

Prof. Carlos Majer Aplicações Corporativas UNICID

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Programação para a Plataforma Android Aula 7. Mul$mídia

MANUAL INSTALAÇÃO WEB SERVICE

Curso de Android - 2 Novas Activities. SECAP Prof. Rone Ilídio - UFSJ

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Introdução ao Android

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

JDBC. Prof. Márcio Bueno

HCI Summer Workshop. Android #1. Tiago Guerreiro.

Prof. Jhonatan Fernando

Curso PHP Aula 08. Bruno Falcão

Programação para Dispositivos Móveis

Computação II Orientação a Objetos

Manipulação de Banco de Dados com Java 1. Objetivos

4.6. SQL - Structured Query Language

Comunicação entre A0vidades

Exemplo de Aplicaça o Facebook

Android e Bancos de Dados

Profº Aldo Rocha. Banco de Dados

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Desenvolvimento de Aplicativos Android

Banco de Dados Avançados Banco de Dados Ativo

A linguagem SQL

Inserindo Dados no Banco de Dados Paradox.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Banco de Dados SQL (Structured Query Language) Ana Paula Toome Wauke

Prof: Ricardo Quintão Site:

SQL. Autor: Renata Viegas

Transcrição:

Android Banco de Dados Ivan Nicoli

SQLite O Android tem suporte ao SQLite (http://www.sqlite.org), um leve e poderoso banco de dados. Cada aplicação pode criar um ou mais banco de dados, que ficam localizados na pasta: /data/data/<pacote-aplicação>/databases/ É possível adicionar o banco de dados à aplicação basicamente de duas formas: Utilizando a API do Android para SQLite para gerar todas as tabelas na primeira vez que a aplicação for executada. Adicionar o arquivo correspondente ao banco de dados diretamente na pasta do Android.

Exercício 1 Criando os Scripts Crie um projeto do tipo Android Project, com o nome ExemploSQLite, com o pacote br.edu.facear.exemplosqlite. Na pasta assets crie um arquivo chamado alunos.sql, abra o arquivo (a criação deste arquivo é opcional). Em Type, selecione a opção SQLITE_XXX e com a ajuda do editor crie o script: DROP TABLE alunos; CREATE TABLE alunos( _id INTEGER PRIMARY KEY autoincrement, nome varchar); insert into alunos(_id,nome) values(1,"aluno1"); insert into alunos(_id,nome) values(2,"aluno2"); insert into alunos(_id,nome) values(3,"aluno3");

Exercício 2 SQLite3 (1/2) O SDK do Android disponibiliza o aplicativo sqlite3 na pasta tools. O mesmo aplicativo está disponível nos dispositivos e no emulador do Android. Execute o aplicativo que acabou de ser criado. Acesse o prompt de comando e digite o comando: adb shell Navegue na árvore de diretórios: cd /data/data/br.edu.facear.exemplosqlite mkdir databases cd databases Digite o comando: sqlite3 alunos

Exercício 2 SQLite3 (2/2) Execute o script construído anteriormente: DROP TABLE alunos; CREATE TABLE alunos( _id INTEGER PRIMARY KEY autoincrement, nome varchar); insert into alunos(_id,nome) values(1,"aluno1"); insert into alunos(_id,nome) values(2,"aluno2"); insert into alunos(_id,nome) values(3,"aluno3"); Verifique os dados pelo comando: select * from alunos; Para verificar o banco de dados construído digite o comando:.database Para sair, digite o comando:.quit

Exercício 3 Acessando os Dados Renomeie a Activity padrão gerada pelo projeto para AlunosListActivity, com o seguinte conteúdo: public class AlunosListActivity extends ListActivity { private SQLiteDatabase db; @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); db = this.openorcreatedatabase("alunos", Context.MODE_PRIVATE, null); // select * from alunos order by nome; Cursor c = db.query("alunos", null, null, null, null, null, "nome"); startmanagingcursor(c); // Criando um adapter do resultado da query. SimpleCursorAdapter sca = new SimpleCursorAdapter(this, android.r.layout.simple_list_item_1, c, new String[] { "nome", new int[] { android.r.id.text1 ); // Adicionando o Adapter a ListActivity setlistadapter(sca);

Exercício 3 Gerenciador de Alunos (1/4) Crie uma nova Activity chamada GerenciarAlunos. Adicione a implementação do método oncreate: protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); db = this.openorcreatedatabase("alunos", Context.MODE_PRIVATE, null); setcontentview(r.layout.gerenciaraluno); this.id = (EditText) findviewbyid(r.id.idaluno); this.nome = (EditText) findviewbyid(r.id.nomealuno); this.id.settext(getintent().getintextra("_id", -1) + ""); this.nome.settext(getintent().getstringextra("nome") + ""); Button inserir = (Button) findviewbyid(r.id.inseriraluno); inserir.setonclicklistener(this); Button remover = (Button) findviewbyid(r.id.removeraluno); remover.setonclicklistener(this); Button editar = (Button) findviewbyid(r.id.editaraluno); editar.setonclicklistener(this);

Exercício 3 Gerenciador de Alunos (2/4) E o método onclick: public void onclick(view v) { int id = Integer.parseInt(this.id.getText().toString()); String nome = this.nome.gettext().tostring(); ContentValues valores; switch (v.getid()) { case R.id.inserirAluno: valores = new ContentValues(); valores.put("nome", nome); // insert into alunos(_id,nome) values(?,?); db.insert("alunos", null, valores); break; case R.id.editarAluno: valores = new ContentValues(); valores.put("nome", nome); // update alunos set nome=? from alunos where id=? db.update("alunos", valores, "_id=?", new String[] { id + "" ); break; case R.id.removerAluno: // delete alunos where _id=?; db.delete("alunos", "_id=?", new String[] { id + "" ); break; db.close(); finish();

Exercício 3 Gerenciador de Alunos (3/4) Adicione os métodos e os atributos abaixo na classe AlunosListActivity: private EditText id; private EditText nome; private SQLiteDatabase db; protected void onlistitemclick(listview l, View v, int position, long id) { super.onlistitemclick(l, v, position, id); // Obtendo objeto selecionado Cursor c = (Cursor) getlistadapter().getitem(position); Intent gerenciaralunos = new Intent(this, GerenciarAlunos.class); gerenciaralunos.putextra("_id", c.getint(c.getcolumnindexorthrow("_id"))); gerenciaralunos.putextra("nome", c.getstring(c.getcolumnindexorthrow("nome"))); startactivityforresult(gerenciaralunos, 1234); protected void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); Cursor c = ((SimpleCursorAdapter) getlistadapter()).getcursor(); c.requery();

Exercício 3 Gerenciador de Alunos (4/4) Crie um arquivo xml de layout chamado gerenciaraluno.xml, adicione o conteúdo a seguir: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/idaluno" style="@style/dim" android:hint="@string/identificador_aluno" /> <EditText android:id="@+id/nomealuno" style="@style/dim" android:hint="@string/nome_aluno"><requestfocus /></EditText> <Button android:id="@+id/inseriraluno" style="@style/dim" android:text="@string/inserir_aluno" /> <Button android:id="@+id/editaraluno" style="@style/dim" android:text="@string/atualizar_aluno" /> <Button android:id="@+id/removeraluno" style="@style/dim" android:text="@string/remover_aluno" /> </LinearLayout>

Gerando banco pela API O Android fornece a classe SQLiteOpenHelper que apoia a criação do dinâmica do banco pelo aplicativo. Para utiliza-la basta criar uma subclasse e implementar os métodos: oncreate: Executado quando a aplicação é iniciada, caso o banco não exista. onupgrade: Executado em atualizações do aplicativo quando é necessário alterar o schema dos dados.

Exercício 4 - Gerando banco pela API (1/2) Crie a classe AlunoOpenHelper no pacote br.edu.facear.exemplosqlite.database e adicione o conteúdo: public class AlunoOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "alunos"; private static final int DB_VERSION = 1; private static final String CREATE_ALUNOS = "CREATE TABLE alunos(" + "_id INTEGER PRIMARY KEY autoincrement," + "nome varchar);"; private static final String INSERT_A1 = "insert into alunos(nome) values(\"aluno1\");"; private static final String INSERT_A2 = "insert into alunos(nome) values(\"aluno2\");"; private static final String INSERT_A3 = "insert into alunos(nome) values(\"aluno3\");"; public AlunoOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); public AlunoOpenHelper(Context context, CursorFactory factory) { this(context, DATABASE_NAME, factory, DB_VERSION); @Override public void oncreate(sqlitedatabase db) { db.execsql(create_alunos); db.execsql(insert_a1); db.execsql(insert_a2); db.execsql(insert_a3); @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {

Exercício 4 - Gerando banco pela API (2/2) Nas classes AlunosListActivity e GerenciarAlunos, altere a chamada: db = this.openorcreatedatabase("alunos", Context.MODE_PRIVATE, null); Pela chamada: // db = this.openorcreatedatabase("alunos", Context.MODE_PRIVATE, null); db = (new AlunoOpenHelper(this, null)).getwritabledatabase(); Se o arquivo do banco de dados for excluído, a aplicação executará o script automaticamente.

Fim