PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS



Documentos relacionados
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

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

Android e Bancos de Dados

Interfaces Gráficas parte 3

Análise de Dados do Financeiro

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Capítulo 04: Persistência com SQLite

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

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

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

ÍNDICE... 2 POWER POINT Abas... 7 Salvando Arquivos... 8 Abrindo um arquivo LAYOUT E DESIGN... 13

Portal Sindical. Manual Operacional Empresas/Escritórios

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Microsoft Access XP Módulo Um

Windows Explorer. Prof. Valdir

Banco de Dados BrOffice Base

1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Manual Sistema Mó vel Msys Cómercial

Manual do Visualizador NF e KEY BEST

GERENCIADOR DE CONTEÚDO

Como funciona? SUMÁRIO

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

DIRETRIZES DE USO DA MATRIZ DE SISTEMATIZAÇÃO DE INFORMAÇÕES

Apostila de Windows Movie Maker

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Google Drive. Passos. Configurando o Google Drive

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Sistema de Controle. Como entrar no sistema. Tela inicial. Funcionalidades do sistema. Controle de permissões. Menu Aplicativo

Modo Estrutura é o ambiente de definição e estruturação dos campos, tipos de dados, descrição e propriedades do campo.

Criando, inserindo e exibindo PHP+MySql

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Projeto Arquitetural do IEmbedded

Sistema Click Principais Comandos

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

CURSO DE INFORMÁTICA BÁSICA AULA 2 O AMBIENTE WINDOWS

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Manual de utilização do Sistema de gerenciamento de inspeção de equipamentos (SGIE) Conteúdo

Manual SAGe Versão 1.2 (a partir da versão )

Persistência e Banco de Dados em Jogos Digitais

Manual Integra S_Line

Ministério do Esporte Secretaria Nacional de Esporte, Educação, Lazer e Inclusão Social Programa Segundo Tempo. Orientações para uso do.

Faculdade Boa Viagem Sistemas de Informação Gerenciais EXERCÍCIO PASSO-A-PASSO PEDIDOS E CONTROLE DE ESTOQUE. Microsoft Access.

Config. do módulo MSA com dispositivos REP.

Banco de Dados Microsoft Access: Criar tabelas

Utilização do Webmail da UFS

Introdução ao Tableau Server 7.0

Manual de Utilização do Zimbra

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Análise de Ponto de Função

Especificação do 3º Trabalho

Procedimentos para Instalação do SISLOC

OneDrive: saiba como usar a nuvem da Microsoft

Guia Rápido Portal do Paciente

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

Manual do usuário. Softcall Java. versão 1.0.5

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Manual do Usuário CFCWeb BA

Tutorial do Sistema de Gestão de Conteúdos para Web - SYSWEB

LINGUAGEM DE BANCO DE DADOS

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

O Primeiro Programa em Visual Studio.net

Capítulo 13 Pastas e Arquivos

Aula 1: Noção Básica e Criação de Tabelas.

MANUAL DE SUPORTE. Controle de Suporte. Este manual descreve as funcionalidades do controle de suporte.

Manual do Usuário Nextel Cloud. Manual do Usuário. Versão Copyright Nextel

Software. Gerenciamento de Manutenção

Manual de Utilização do PLONE (Gerenciador de página pessoal)

Tela Inicial: O Banco de Dados e seus objetos:

Microsoft Office PowerPoint 2007

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

UFG - Instituto de Informática

UNIVERSIDADE FEDERAL DE RORAIMA PRÓ REITORIA DE PLANEJAMENTO DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO COORDENAÇÃO DE SISTEMAS DE INFORMAÇÃO

Banco de Dados. Microsoft Access

Manual TIM PROTECT BACKUP. Manual do Usuário. Versão Copyright TIM PROTECT BACKUP

Manual de Administração

Aula 1 Acesso a Banco de Dados

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

Manual das funcionalidades Webmail AASP

02 - Usando o SiteMaster - Informações importantes

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Roteiro do Programa e Entrada/Saída

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Manual de Utilização Autorizador

Cobrança Bancária. Contas / Manutenção.

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

MANUAL DO GERENCIADOR ESCOLAR WEB

Desenvolvendo Websites com PHP

Transcrição:

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Uso do SQLite no Android Professor: Danilo Giacobo

OBJETIVOS DA AULA Aprender a persistir dados utilizando o banco de dados SQLite. Conhecer e utilizar a classe SQLiteOpenHelper. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 2

INTRODUÇÃO O uso dos smartphones cresceu muito nos últimos anos. Os usuários passaram a armazenar seus dados não só nos computadores desktop, mas também em seus smartphones. Atualmente, as principais plataformas oferecem mais de uma maneira de salvar e recuperar as informações produzidas por nossos aplicativos. A plataforma Android oferece diferentes métodos de persistência: o Armazenamento interno (memória do smartphone) o Armazenamento externo (cartão de memória) o Classe SharedPreferences o Bancos de Dados Relacionais (SQLite) 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 3

SQLITE O SQLite é um banco de dados simples e poderoso, formatado para ser executado na plataforma móvel. É um repositório que simula um banco de dados relacional. Os dados são armazenados de forma binária (transparente para o usuário). É a principal forma de persistência nos aplicativos Android. O SQLite é formado por um conjunto de bibliotecas escritas em C. É um banco de dados gratuito. O Android oferece suporte completo ao banco por meio de uma API com um rico conjunto de classes e métodos que abstraem as complexidades dos códigos SQL. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 4

O PROJETO Para exemplificar o uso do SQLite, um aplicativo de cadastro de notas relativamente simples será desenvolvido. Crie um projeto chamado UsandoSQLite. Além da Activity principal, crie uma nova Activity para apresentar as informações do banco em uma lista, chamada de ListaActivity.java, com uma tela activity_lista.xml, conforme imagem ao lado. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 5

O PROJETO A tela principal do aplicativo será formada por três campos: Código, Nome da Disciplina e Nota, além de cinco botões: Incluir, Alterar, Excluir, Pesquisar e Listar. O campo da chave primária do nosso aplicativo é o campo código, sendo este obrigatório para as operações de alterar, excluir e pesquisar. Para a operação de incluir, esse campo não é necessário, uma vez que será AUTOINCREMENT na tabela. A opção de listar apresenta todos os dados do banco. Para esta operação o campo código não precisa ser preenchido. O aplicativo, embora simples, procura apresentar as funcionalidades do banco de dados SQLite, sendo executado a partir de métodos específicos para a inclusão, alteração, e assim por diante. Existe uma maneira mais elaborada de usar o SQLite a partir da classe SQLiteOpenHelper. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 6

O PROJETO - INTERFACE GRÁFICA PRINCIPAL 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 7

O PROJETO - INTERFACE GRÁFICA PRINCIPAL 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 8

O PROJETO - CLASSE PRINCIPAL 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 9

O PROJETO - INTERFACE GRÁFICA DE LISTAR A interface gráfica activity_lista.xml é composta exclusivamente de um componente ListView, o qual apresentará os elementos do banco de dados dispostos em uma lista, conforme apresentado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 10

O PROJETO - CLASSE DE LISTAR O código da Activity que trata a interface anterior recupera o ListView para a formatação do seu conteúdo, conforme apresentado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 11

USANDO O SQLITE NO ANDROID Para fazer uso do SQLite no Android, o primeiro passo é a instanciação de um objeto do tipo SQLiteDatabase, sendo este o objeto que fará a comunicação com o banco de dados, permitindo a execução de comandos, como, por exemplo, a criação de tabelas, manipulação e consulta de registros. Este código é apresentado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 12

MODO DE UTILIZAÇÃO DO SQLITE Não é comum a manipulação do banco de dados do Android como acontece na programação desktop e Web, inclusive ferramentas como o MySQL-Front, PGAdmin e IBExpert não são comuns para o Android, já que o usuário não costuma manipular diretamente os dados. A maneira mais comum de manipular os dados é via linha de código. Desta forma, a criação do banco e da tabela costuma ser feita no método construtor da tela que usa pela primeira vez essa base de dados, entretanto, após a criação do banco, o mesmo é armazenado na pasta data/data do device, dentro do pacote do projeto, como pode ser visto abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 13

MODO DE UTILIZAÇÃO DO SQLITE Se o usuário fizer questão, o mesmo poderá recuperar o arquivo do banco de dados, apresentado em destaque na figura anterior, e utilizar alguns programas desktop para manipular o banco SQLite, como, por exemplo, o SQLite Data Browser, uma ferramenta gratuita e multiplataforma cuja tela é apresentada ao lado. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 14

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS O passo seguinte é fazer os comandos de manipulação do banco de dados na interface gráfica principal. A listagem abaixo apresenta o código referente ao comando de Inclusão. O método insert() retorna o ID da linha criada no banco de dados ou -1 se um erro ocorreu. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 15

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS A listagem abaixo apresenta o código referente ao comando de Alteração. Outra forma de usar o método de alteração: O método update() retorna o número de linhas afetadas. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 16

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS A listagem abaixo apresenta o código referente ao comando de Exclusão. Dica: Utilizando a sintaxe SQL Aos programadores adeptos da linguagem SQL, é possível utilizá-la na inclusão e para isso, basta utilizar o método execsql() no objeto do tipo SQLiteDatabase. Para a inclusão, a sintaxe seria a seguinte: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 17

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS O método delete() retorna o número de linhas afetadas se o segundo parâmetro for informado (cláusula WHERE). A próxima funcionalidade mostrada no sistema é a opção de pesquisa que, ao ser escolhida, apresentará para o usuário uma janela interna (dialog), solicitando o código do registro a ser pesquisado. Ao confirmar, os dados recuperados do banco de dados serão apresentados nos campos da tela. O código dessa funcionalidade é exibido no próximo slide. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 18

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 19

O PROJETO - PESQUISA EM AÇÃO 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 20

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS Dica: Utilizando a sintaxe SQL Assim como os comandos de manipulação de dados (insert, update e delete), os comandos de pesquisa também podem ser executados a partir da sintaxe SQL. Um exemplo é apresentado no código abaixo: O primeiro parâmetro do método rawquery é a sintaxe SQL do comando SQL, o segundo parâmetro é um array de strings com o conteúdo que substituirá o parâmetro? Presente no comando SQL. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 21

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS O último passo no desenvolvimento da nossa aplicação é tratar a listagem dos dados, que apresentará uma nova tela com todos os registros existentes e, desta forma, a lógica codificada na classe principal para listar se resume à chamada de uma nova tela conforme apresentado abaixo: Para concluir a codificação a classe que lista os dados, devemos acessar o SQLite, recuperar todos os registros e adicioná-los ao componente ListView. Existe um Adapter chamado SimpleCursorAdapter que facilita este processo. O código completo da classe de listagem é mostrado no próximo slide. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 22

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 23

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 24

O PROJETO - MANIPULAÇÃO DO BANCO DE DADOS Dica: Apresentando um elemento por linha Se o objetivo é apresentar apenas um elemento por linha, como, por exemplo, o campo nome_disciplina, a instanciação do SimpleCursorAdapter pode ser alterada, conforme o exemplo abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 25

SQLITE OPEN HELPER Para uma melhor organização do código, muitos programadores Android utilizam um modelo baseado na classe SQLiteOpenHelper, sendo a partir desta criada uma subclasse que possui as funcionalidades do banco de dados. O objetivo principal dessa classe é criar uma classe específica para a manipulação do banco de dados. Esta classe terá uma instância do SQLiteDatabase. Iremos a partir de agora alterar nosso projeto desenvolvido até então para usar a classe SQLiteOpenHelper. O primeiro passo para o uso desta classe é a criação de uma classe de entidade, contendo uma imagem da tabela utilizada. É aconselhável criar um pacote para armazenar as classes de entidades. O código da classe de entidade Notas é apresentado no próximo slide. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 26

SQLITE OPEN HELPER 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 27

SQLITE OPEN HELPER Dica: Classes de entidade Ao utilizar a classe SQLiteOpenHelper, aconselha-se a codificação de uma classe de entidade para cada tabela no banco de dados. Em nosso projeto, apenas um classe foi codificada, pois existe apenas uma tabela no banco. Se existissem duas tabelas, duas classes de entidades deveriam ser codificadas, cada uma representando uma tabela. As classes de entidade farão a troca de informações entre a classe Activity e a classe-filha de SQLiteOpenHelper. O próximo passo em nosso projeto atual é criar uma classe para a manipulação do banco de dados, que costuma ficar em outro pacote. O código desta classe é mostrado no próximo slide. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 28

SQLITE OPEN HELPER 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 29

SQLITE OPEN HELPER A estrutura apresentada no slide anterior é a estrutura mínima de uma subclasse de SQLiteOpenHelper. O próximo passo é codificar os métodos para a manutenção do banco de dados. O primeiro deles é o Incluir, mostrado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 30

SQLITE OPEN HELPER O código dos métodos Alterar e Excluir é apresentado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 31

SQLITE OPEN HELPER O código dos métodos Pesquisar e Listar é apresentado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 32

SQLITE OPEN HELPER Será necessário alterar a classe principal da aplicação para utilizar a nova classe de manipulação de banco de dados criada anteriormente. O novo código da classe é mostrado por partes a partir desse slide e dos slides seguintes: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 33

SQLITE OPEN HELPER 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 34

SQLITE OPEN HELPER Os métodos btpesquisaronclick() e btlistaronclick() não sofreram alterações. O código abaixo é referente ao processo de realizar a pesquisa de notas. 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 35

SQLITE OPEN HELPER O código para exibição dos registros é mostrado abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 36

SQLITE OPEN HELPER Com estas mudanças, alterou-se um pouco a estrutura do projeto, que passou a contar com mais classes, como pode ser observado na estrutura do nosso projeto na imagem abaixo: 15/05/2015 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - PROF. DANILO GIACOBO 37