Armazenamento de dados

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

Programação para Dispositivos Móveis

Android Banco de Dados. Ivan Nicoli

Armazenamento de Dados

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

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

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

Tutorial de Manipulação de dados com SQLite

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

Armazenamento de Dados

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

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

persistência de dados

Android e Bancos de Dados

Android e Bancos de Dados

Provedores de Conteúdo

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

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

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

Prof: Ricardo Quintão Site:

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Android e Bancos de Dados

Android e Bancos de Dados

ROOM: Biblioteca de Mapeamento Objeto-Relacional. Prof. Fellipe Aleixo

Capítulo 04: Persistência com SQLite

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

Oracle Database 11g: Introdução à Linguagem SQL Novo

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Desenvolvimento Java para Dispositivos - Android

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

IMPLEMENTAÇÃO DE BANCO DE DADOS

Programação Orientada a Objetos (DPADF 0063)

Page 1. Prof. Constantino Jacob

Comparativo entre gerenciadores de banco de dados para aplicação Android

Banco de Dados. Professora: Luciana Faria

Aula 06 Sistemas Embarcados LT38C

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Introdução à linguagem SQL

Programação de Dispositivos Móveis

Banco de Dados I Introdução SQL

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

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

Tutorial Android Speech

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

ANÁLISE E PROJETO DE BANCO DE DADOS

Java - Conexão ao Banco de Dados usando JDBC

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

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

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Criação de uma aplicação Web ASP.NET MVC 4

CONTROLE DE RECEITAS E DESPESAS PARA DISPOSITIVOS ANDROID

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

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Comandos de Manipulação

BCD29008 Banco de dados

Linguagem de Programação II Implementação

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Programação para a Plataforma Android Aula 17. Broadcasts

Palavras Reservadas da Linguagem Java

Persistência de Classes em Tabelas de Banco de Dados

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

DATA ACCESS OBJECT (DAO)

Manipulação de Dados com SQL

Padrões Fábrica. Simple Factory Factory Method

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

Oracle Database: Fundamentos de SQL e PL/SQL

O MySQL é o banco de dados mais popular usado com PHP.

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

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

Programa de Dispositivos Móveis

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Mapeando Relacionamentos Entre Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima

Transcrição:

Armazenamento de dados

Opções de Armazenamento Shared Preferences Mecanismo simples de armazenar pares de chavevalor Internal Storage Mecanismo para armazenar dados na memória do aparelho External Storage Mecanismo para armazenar dados em um storage externo (cartões SD, USB, etc.)

SQLITE DATABASES

SQLite Databases Android oferece um suporte completo para banco de dados SQLite. Banco de dados podem ser criados e acessados por qualquer classe de uma aplicação Mas não podem ser acessados por outras aplicações

SQLite é uma biblioteca de software que implementa um engenho de Banco de Dados SQL (self-contained, serverless, zeroconfiguration, transactional) Engenho de banco de dados mais deployed do mundo Código fonte de domínio público Patrocinado por:

SQLite no Android Nenhum banco de dados padrão é oferecido para sua aplicação pelo Android A própria aplicação precisa criar o banco de dados, tabelas, índices e dados Os banco de dados são acessíveis somente pela aplicação que os criou

SQLite no Android Para se criar, evoluir e abrir bancos de dados, a maneira mais recomendada é criar uma subclasse de SQLiteOpenHelper e redefinir: Construtor Método oncreate() Método onupgrade() Outros métodos opcionais que podem ser redefinidos onopen() ondowngrade()

Construtor de sua classe Helper public class DictionaryOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = meu_bd ; DictionaryOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); Contexto do componente Nome do banco de dados Fábrica de cursor Versão do BD SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)

oncreate de sua classe Helper public class DictionaryOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = meu_bd ; private static final int DATABASE_VERSION = 2; private static final String DICTIONARY_TABLE_CREATE = "CREATE TABLE DICTIONARY (" + KEYWORD TEXT, " + DEFINITION TEXT);"; DictionaryOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); @Override public void oncreate(sqlitedatabase db) { db.execsql(dictionary_table_create);

onupgrade de sua classe Helper @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql("drop TABLE IF EXISTS DICTIONARY"); oncreate(db);

Como acessar o BD a partir dos componentes (Activity, Services...) package ufrn.aulas; import android.app.activity; import android.database.sqlite.sqlitedatabase; import android.os.bundle; public class HelloBDActivity extends Activity{ private SQLiteDatabase database; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DatabaseFirstExampleHelper helper = new DatabaseFirstExampleHelper(this); database = helper.getreadabledatabase();

Como manipular dados no BD Usa-se execsql() Método adequado para execução de qualquer SQL que não retorna resultados (INSERT, UPDATE, DELETE) Usa-se os métodos insert(),update(), e delete() Eliminam a necessidade de se trabalhar diretamente com SQL

Usando execsql package ufrn.aulas; import android.app.activity; import android.database.sqlite.sqlitedatabase; import android.os.bundle; public class HelloBDActivity extends Activity{ private SQLiteDatabase database; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); DatabaseFirstExampleHelper helper = new DatabaseFirstExampleHelper(this); database = helper.getwritebledatabase(); database.execsql("insert INTO DICTIONARY (KEYWORD,DEFINITION) VALUES ('Android','Plataforma para Dispositivos Móveis')");

Usando os métodos específicos private void processadd(dialogwrapper wrapper) { ContentValues values=new ContentValues(2); values.put(databasehelper.title, wrapper.gettitle()); values.put(databasehelper.value, wrapper.getvalue()); db.getwritabledatabase().insert("constants", null, values); private void processdelete(long rowid) { String[] args={string.valueof(rowid); db.getwritabledatabase().delete("constants", "ID=?", args);

Buscando dados no BD Usa-se rawquery() para executar um SELECT diretamente Usa-se query() Para passar as partes dos elementos da busca Eliminam a necessidade de se trabalhar diretamente com SQL

Usando rawquery() database=db.getreadabledatabase(); constantscursor = database.rawquery("select _ID, title, value FROM constants ORDER BY title",null);

Usando o método query É preciso passar vários parâmetros, representando as partes da query O nome da tabela A lista das colunas a serem recuperadas A cláusula WHERE (opcionalmente incluindo parâmetros) A lista dos valores para substituir os parâmetros A cláusula GROUP BY A cláusula HAVING A cláusula ORDER BY

Usando o método query() String[] columns={"id", "inventory"; String[] parms={"snicklefritz"; Cursor result=db.query("widgets", columns, "name=?", parms, null, null, null);

Manipulando cursores Ao executar qualquer query (através dos dois métodos) recebese um cursor como resultado Representa um apontador para os registros resultantes da consulta Com um cursor em mãos pode-se: Recuperar a quantidade de registros retornado, via getcount() Iterar sobre as linhas, via movetofirst(),movetonext(), e isafterlast() Manipular os nomes e posição das colunas do resultado via getcolumnnames() e getcolumnindex() Reexecutar a query, via requery() Liberar os recursos via close()

Manipulando cursores Cursor result= db.rawquery("select ID, name, inventory FROM widgets", null); while (!result.movetonext()) { int id=result.getint(0); String name=result.getstring(1); int inventory=result.getint(2); // Faz algo com os valores result.close();

FIM