Curso de SQLLite no Android
Por: Alcenor Costa de Alm • 20/11/2015 • Artigo • 4.730 Palavras (19 Páginas) • 185 Visualizações
Curso de SQLite no Android
[pic 1]
O foco desse curso é o uso do SQLite no Android, mas para um melhor entendimento do produto, pretendemos mostrar o seu funcionamento independente do ambiente Android. Nas próximas lições nos concentraremos no nosso objetivo, que é o seu uso no desenvolvimento de apps Android.
Iniciamos o curso de SQLite fazendo a seguinte pergunta, por que devo aprender o SQLite? Bem, essa pergunta é fácil de responder, o Android já vem com o suporte nativo ao banco de dados SQLite. Claro que não é só por causa disso, mas que é um grande motivo é rsrsrs...
Mas vamos ao que interessa, afinal, como funciona o SQLite?
SQLite é uma biblioteca desenvolvida em linguagem C que implementa um bando de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo RDBMS separado.
Quais as suas principais características?
- Transações atômicas, consistentes, isoladas e duráveis, ou seja, segue o conceito de ACID;
- Configuração zero, não é necessário nenhuma configuração para usar o banco, tampouco administrá-lo;
- Implementa o padrão SQL92;
- Um banco de dados completo é armazenado em um único arquivo (.db) que é multiplataforma;
- Suporte a base de dados com terabytes de dados armazenados;
- Código pequeno e compacto, menor que 325KB se for configurado com todos os recursos ou 190Kb, se usar apenas algumas configurações opcionais;
- API simples de usar;
- Sem dependências externas para outras bibliotecas;
Tipos de dados
Quando falamos de banco de dados pensamos logo nos tipos de dados. O SQLite trabalha com tipagem dinâmica de dados, sim dinâmica. O conteúdo pode ser armazenado como:
- INTEGER – valores inteiros até 8 bytes
- REAL – valores de ponto flutuante
- TEXT – armazena strings (UTF-8, UTF-16BE e UTF-16LE)
- BLOB – armazena dados binários
- NULL – É um valor nulo
Analisando os tipos de dados acima, você não sentiu falta de nada, cadê o tipo booleano, e o tipo Date/Time? Bem, o SQLite armazena o tipo booleano como: 0 para falso, e 1 para verdadeiro. Já o tipo Date/Time pode ser armazenado como: TEXT, REAL ou INTEGER.
Onde podemos usar o SQLite, em que tipo de aplicação?
- Dispositivos e sistemas embarcados;
- Aplicações client/server;
- Sites de pequeno e médio porte;
- Aprendizado de banco de dados;
Quem usa o SQLite?
- Adobe;
- Apple, adivinha em quais produtos : iPhone, iPod Touch e iPad;
- Dropbox;
- Firefox;
- Google, podemos destacar os principais produtos: o Chrome e o Android;
- Microsoft;
- Skype;
No site do SQLite tem uma vasta lista de grandes empresas que utilizam o SQLite em seus produtos.
Exercicio 1 – Instalando o SQLite
Como o foco desse curso é o SQLite no Android, a seguir vamos apenas mostrar como instalar o SQLite no Linux/Windows para fins de testes e estudo.
No Linux, você pode baixar via APT-GET da seguinte maneira:
# apt-get update
# apt-get install sqlite
ou
pode baixar o arquivo a última versão do arquivo “Precompiled Binaries for Linux” do site oficial do SQLite. Escolhemos esse tipo de instalação por ser mais simples.
No Windows, favor baixar o arquivo sqlite-shell-win32-x86-3070701.zip (versão atual) e executar sqlite.exe após descompactar o arquivo zip.
Se você não gosta de executar comandos via shell, não se desespere, existem vários aplicativos cliente para o SQLite. Eu sugiro a ferramenta SQLiteStudio por ser Open Source (GPL v2) e multiplataforma.
Instando o SQLiteStudio no Linux
Para executar a ferramenta no Linux, após o download do arquivo sqlitestudio-
Para permitir a execução sem a necessidade de colocar o caminho completo do arquivo, renomeie o arquivo para “sqlitestudio” e inclua no PATH do seu Linux.
No Windows, baixe o aplicativo sqlitestudio-
Para criar o seu banco de teste com o shell, execute o seguinte comando:
./sqlite3 curso
Obs.: um arquivo .db será gerado no mesmo path do shell.
Para criar uma tabela entre com o comando create table no shell, conforme exemplo abaixo:
sqlite>CREATE TABLE aluno (nome VARCHAR(100), email VARCHAR(100));
Para verificar se a tabela foi criada, execute o seguinte comando:
sqlite> .tables
Nas próximas lições, abordaremos o SQLite no Android com exemplos e exercícios.
Lição 2: Conhecendo a API SQLite para Android
Como já dito na lição 1, o Android já tem suporte nativo ao banco de dados SQLite. Nesta lição pretendemos detalhar a API com exemplos práticos e didáticos.
Na primeira lição, criamos o banco de dados via shell ou usando a ferramenta SqliteStudio, o caminho poderia ser especificado no momento da criação do database. No ambiente Android, o banco fica armazenado num path especifico, conforme o nome do pacote da sua aplicação, conforme a seguinte estrutura de diretórios: /data/data/pacote.sua.app.android/databases. Isso significa que o banco de dados é visível apenas para a sua aplicação. Existe uma forma de acessar os bancos criados por outras aplicações, através da API Content Providers, ela permite o compartilhamento dos dados de outras aplicações. Não abordaremos o acesso via ContentProviders nesse curso.
Mas como eu crio o banco de dados no meu device, Tio?
Muita calma nessa hora jovem mancebo! Na primeira lição, aprendemos como criar o banco de dados SQLite de formal manual (shell ou outra ferramenta), já imaginou toda vez que você criar um banco de dados para a sua app Android ter que copiar o arquivo .db manualmente para a estrutura de diretórios citada acima. Imagina atualizar o banco em milhares de dispositivos, tarefa árdua né. Vimos então que podemos criar o banco de dados no Android de duas maneiras: manualmente, copiando o .db gerado para o diretóriodata/data/pacote.sua.app.android/databases, ou via programação.
Nessa lição pretendemos abordar a criação de banco via programação, através das classes disponibilizadas na API do Android.
Criando o banco de dados via programação
Para criar o banco via programação é necessário o entendimento da API do Android, que disponiliza um conjunto de classes para acessar o SQLite. Inicialmente devemos criar uma classe que estenda a classeSQLiteOpenHelper, essa classe é responsável por gerenciar a criação e atualização do banco de dados no Android.
Abaixo vamos demonstrar um exemplo prático baseado na aplicação HPP (Hercules Password Protector), onde criamos uma classe chamada DBHelper, que estende a classe SQLiteOpenHelper, consequentemente herda os seus métodos: onCreate (cria o banco no momento de sua instalação) e onUpgrade (atualiza o banco).
Segue a implementação completa da classe citada acima:
...