Sie sind auf Seite 1von 7

Universidade Federal do Piauí – UFPI

Centro de Ciências da Natureza – CCN

Curso: Ciência da Computação

Disciplina: Engenharia de Software II

Projeto: B Equipe: New Easii Team

Tutorial de Manipulação de dados com SQLite

Alexandre Cristian Lages de Araújo

Artur Lima de Miranda

Gustavo Lustosa Oliveira Silva

Irvayne Matheus de Sousa Ibiapina

José Patrício de Sousa Filho

Otávio Cury Costa Castro

Teresina-PI, Maio de 2016


Tutorial de Manipulação de dados SQLite

1. Introdução:

SQLite é um banco de dados Open Source. Ele suporta recursos de banco de dados
relacionais padrão, como sintaxe SQL, transações, etc.

SQLite suporta os tipos de dados TEXT (semelhante a STRINGS em Java), INTEGER


(semelhante ao LONG em Java) e REAL (semelhante ao DOUBLE em Java). Todos os
outros tipos devem ser convertidos em um desses campos antes de ser salvo no banco de
dados. O próprio SQLite não valida se os tipos de escrita para as colunas são realmente
do tipo definido. Ou seja, você pode escrever um número inteiro em uma coluna de string
e vice-versa.

2. SQLite no Android:

O SQLite já vem incorporado em todo dispositivo Android. Com o SQL, o Android não
requer um procedimento de configuração ou administração de banco de dados.

Você só tem que definir as instruções em SQL para criar e atualizar o banco de dados.
Depois disso, o banco de dados é gerenciado automaticamente para você pela plataforma
Android.

O acesso a um banco de dados SQLite envolve o acesso ao sistema de arquivos. Isto pode
ser lento. Portanto, recomenda-se realizar operações de banco de dados de forma
assíncrona.

Se seu aplicativo cria um banco de dados, esta base de dados é, por padrão, salva no
diretório "DATA/data/APP_NAME/databases/FILENAME".

As partes do diretório acima são construídas com base nas seguintes regras. DATA é o
caminho que o método “Environment.getDataDirectory()” retorna. APP_NAME é o
nome do aplicativo. FILENAME é o nome especificado no código do aplicativo para o
banco de dados.

3. Packages SQLite:

O pacote android.database contém todas as classes necessárias para trabalhar com


bancos de dados. O pacote android.database.sqlite contém as classes específicas para o
SQLite.
4. SQLiteOpenHelper:

Para criar e atualizar um banco de dados na sua aplicação Android você deve criar uma
subclasse da classe SQLiteOpenHelper(como no exemplo MySQLiteHelper.java). No
construtor de sua subclasse você deve chamar o método super() do SQLiteOpenHelper,
especificando o nome do banco de dados e a versão do banco de dados atual.

O versionamento do banco de dados é importante para suportar atualizações de sua


aplicação caso haja alterações nas tabelas. Para isso deve ser implementado o método
onUpgrade() que será executado caso a constante com a versão esteja diferente do banco
salvo no dispositivo.

Além disso é necessário implementar o método onCreate(), que será executado caso não
haja nenhum banco salvo no dispositivo:

onCreate() - é chamado pela estrutura, se o banco de dados é acessado, mas ainda


não criado.

onUpgrade() - chamado, se a versão do banco de dados é aumentada no código


do aplicativo. Este método permite que você atualizar um esquema de banco de dados
existente ou para apagar o banco de dados existente e recriá-lo através do método
onCreate().

Ambos os métodos (exemplificados na classe MySQLiteHelper.java) recebem um objeto


SQLiteDatabase como parâmetro que é a representação Java da base de dados.

A classe SQLiteOpenHelper fornece o getReadableDatabase() e getWriteableDatabase(),


métodos para obter acesso a um objeto SQLiteDatabase, seja em modo de leitura ou modo
de escrita.

As tabelas do banco de dados devem usar o identificador '_id' para a chave primária da
tabela. Várias funções do Android já trabalham com essa norma.

É recomendável que se crie uma classe separada por tabela. Esta classe define métodos
estáticos onCreate() e onUpgrade(). Desta forma, sua implementação do
SQLiteOpenHelper permanece legível, mesmo se você tiver várias tabelas.

5. Classe SQLiteDatabase:

SQLiteDatabase é a classe base para trabalhar com um banco SQLite no Android e


fornece métodos para abrir, consultar, atualizar e fechar o banco de dados (exemplificados
em CommentsDataSource.java).

Mais especificamente SQLiteDatabase fornece os métodos insert(), update() e delete().


Além disso, fornece o método execSQL(), que permite a execução direta de uma instrução
SQL.
O objeto ContentValues permite definir "chave/valor". A chave representa o identificador
de coluna da tabela e o valor representa o conteúdo para o registro da tabela nesta coluna.
ContentValues pode ser usado para inserções e atualizações de entradas de dados.

As consultas podem ser criados através dos métodos rawQuery() e query() ou através da
classe SQLiteQueryBuilder.

rawQuery() aceita diretamente uma instrução SQL select como entrada.

query() fornece uma interface estruturada para especificar a consulta SQL.

SQLiteQueryBuilder é uma classe que ajuda a construir consultas SQL.

A documentação dessas funções é detalhada nesse link:

https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

6. Cursor:

A consulta retorna um objeto Cursor. Um Cursor representa o resultado de uma consulta


e, basicamente, aponta para uma linha do resultado da consulta. Desta forma o Android
guarda os resultados da consulta de forma eficiente ao invés de carregar todos os dados
na memória.

Para obter o número de elementos resultantes da consulta utilize o método getCount().

Para se deslocar entre cada uma das linhas (ou raw) de dados individuais, você pode usar
os métodos moveToFirst() e MoveToNext(). O método isAfterLast () permite verificar se
o final da 'query' resultante foi atingda.

Cursor fornece métodos getXXXX(), por exemplo, getLong(columnIndex),


getString(columnIndex) para acessar os dados da coluna para a posição atual do resultado.
O "columnIndex" é o número da coluna que você está acessando (contando a partir do 0).

Cursor também fornece o método getColumnIndexOrThrow(String), que permite obter o


índice da coluna a partir do nome da coluna.

Um cursor precisa ser fechado com a chamada de método close().

Para facilitar a exibição (numa ListView por exemplo) dos dados resultantes da consulta,
você pode usar o SimpleCursorAdapter que mapeia as colunas para as Views baseada no
Cursor passado como parâmetro.

Exemplo do uso do Cursor pode ser visto em CommentsDataSource.java, e a


documentação dessa classe pode ser visualizada nesse link:

https://developer.android.com/reference/android/widget/SimpleCursorAdapter.html
MySQLiteHelper.java

Comment.java
Métodos a ser inseridos na Activity

Das könnte Ihnen auch gefallen