Buscar

AulaSQLITE- Android 2015-2

Prévia do material em texto

“Esvazie sua mente de modelos, formas, seja amorfo como a água. Você coloca a
água em um copo, ela se torna o copo. Você coloca a água em uma garrafa, ela se
torna a garrafa. Você coloca ela em uma chaleira, ela se torna a chaleira. A água pode
fluir, a água pode destruir. Seja água meu amigo.”
BRUCE LEE
27 de novembro de 1940 – 20 de julho de 1973
PROGRAMAÇÃO PARA 
DISPOSITIVOS MÓVEIS
ANDROID + SQLITE
SQLITE
http://www.sqlite.org
 É um leve e poderoso banco de dados
 Os BDs criados nas aplicações ficam em suas pastas
data/data/nome_pacote/databases/
 Um BD é visível somente a aplicação que o criou
 Um banco de dados com SQLITE pode ser criado através da própria API
Android ou por ferramentas localizadas no site do projeto como SQLitePlus,
SQLite Expert Personal e SQLite3
SQLITE
Criação do banco de dados
 Método
 openOrCreateDatabase(<nome_banco>,<modo_abertura>,<cursor>)
 String nome_banco : nome do banco de dados
 int modo :
 Context.MODE_PRIVATE -> usar o banco somente na aplicação
 Context.MODE_WORLD_READABLE e Context.MODE_WORLD_WRITEABLE -> para que outras
aplicações consigam ler e escrever no banco
 CursorFactory cursor -> Implementação opcional para instanciar o objeto cursor
quando uma busca for realizada
SQLiteDatabase db;
db = ctx.openOrCreateDataBase(“automoveis”,Context.MODE_PRIVATE,null);
SQLITE
Inserção de valores
 Utiliza-se o objeto : android.content.ContentValues:
SQLiteDataBase.insert(<tabela>,<nullColumnHack>, <valores>)
ContentValues valores = new ContentValues();
valores.put(“marca”,”BMW”);
valores.put(“placa”,”jbd-0007”)
valores.out(“ano”,”2000”);
db.insert(“automoveis”, null, valores);
SQLITE
Atualização de tabelas
 Update : db.update(<tabela>, <valores>, <where>, <whereArgs[]>)
 Tabela: nome da tabela
 Valores : ContentValues
 Where : exemplo “id=?”
db.update(“automoveis”, valores, “_id=?”, new String[]{id}); // Sendo id uma variável
a qual poderá ser passada por parâmetros ou definida como local no programa
db.update(“automoveis”, valores, “_id=”+id, null);
: update automóvel set marca=“bmw”, placa=“JBD-0007”, ano=“2000” where id = aa;
SQLITE
Exclusão
 SQLiteDatabase.delete(<tabela>, <where>, <whereArg>);
 Deletar um automóvel cujo id = 007:
 db.delete(“automovel”, “_id=”+007, null);
 : dele from automóvel where _id=007
SQLITE
Pesquisa
 Para utilizar as pesquisas é necessário utilizar o objeto Cursor para simular o comando de
pesquisa SQL : SELECT * FROM <TABELA> ....
 O método query retorna um objeto do tipo Cursor (android.database.Cursor) o qual permite
que sejam percorridos todos os registros retornados;
 Cursor c = db.query(<distinct>, <tabela>, <colunas>, <seleção>, <selecaoARgs>, <groupBy>,
<orderBy>)
 distinct: boolean utilizado para que o resultado não contenha registros repetidos
 tabela: String com o nome da tabela
 colunas: Array de Strings com os nomes das colunas para seleção se for passado array null todas
as colunas serão retornadas ->query(..., new String[]{“marca”, “ano”}, ...)
 seleção: String com a cláusula where para filtrar os registros com null todos serão retornados
 seleçãoARgs: argumentos “?” do where
 groupBy: String com o nome da coluna a agrupar
 orderBy: String com nome da coluna para ordenar
CÓDIGO EXEMPLO
EventsData.java
e Registro Carros
 SQLiteDatabase banco = null;
 final String NOMEBANCO = "automoveis";
 final String NOMETABELA = "carros";
 setContentView(R.layout.activity_cadastro_carro);
 criarBanco();
public void criarBanco(){
try {
banco = openOrCreateDatabase(NOMEBANCO, MODE_PRIVATE, null);
String sql;
sql = "CREATE TABLE IF NOT EXISTS carros (_id INTEGER PRIMARY"
+ " KEY AUTOINCREMENT, marca TEXT , "
+ "modelo TEXT, placa TEXT)";
banco.execSQL(sql);
mensagem("BANCO CRIADO COM SUCESSO");
} catch (Exception e) {
mensagem("ERRO CRIANDO O BANCO :" + e.toString());
Log.e("ERRO CRIANDO BANCO", e.toString());
}
Método mensagem e gravar
public void mensagem(String m){
AlertDialog.Builder alerta = new AlertDialog.Builder(this);
alerta.setMessage(m);
alerta.setNeutralButton("OK", null);
alerta.show();
}
public void gravar(View v){
}
Método inserir
public void inserir(){
try {
banco = openOrCreateDatabase(NOMEBANCO, MODE_PRIVATE, null);
String sql;
sql = "INSERT INTO TABLE carros (marca,modelo,placa) "
+ "VALUES ('marca bla', 'modelo blabla', 'placa-blablabla')";
banco.execSQL(sql);
mensagem("INSERIDO COM SUCESSO NO BANCO");
} catch (Exception e) {
mensagem("ERRO AO INSERIR NO BANCO : " + e.toString());
Log.e("Erro ao inserir", e.toString());
}
}
Classe Carro
 public class Carro {
 private String marca;
 private String modelo;
 private String ano;
 private String placa;
Xml cadastro Carro
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
Xml cadastro Carro
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="gravar"
android:text="Button" />
</LinearLayout>
ESTUDAR .... ESTUDAR ... PRATICAR ... 
PRATICAR ...
 http://developer.android.com/intl/pt-br/guide/topics/data/data-storage.html
 https://github.com/android/platform_development
 http://www.java2s.com/Code/Android/Database/SearchableDictionary.htm
 http://www.java2s.com/Code/Android/Database/UseSQLiteDatabase.htm
 http://www.java2s.com/Code/Android/Database/InsertDataintodatabase.htm
 https://android.googlesource.com/platform/development/+/67545123a4188c714fbcf24e7fe1cf1f614b610c/
samples/SearchableDictionary/src/com/example/android/searchabledict/Dictionary.java
 http://developer.android.com/training/material/index.html
PROJETO DE APK 
carRegister.apk CADASTRO DE CARROS
 Criar uma LISTACTIVITY a qual será responsável por listar sempre todos os
carros que estão no banco de dados já previamente cadastrados, nesta tela
precisaremos criar um menu que puxa os botões de cadastro de um novo carro
e pesquisa
 Criar uma outra Activity a qual será responsável pelo cadastro de carros no
banco de dados
 Criar uma Activity que será a tela de pesquisa responsável por receber um
parâmetro de pesquisa e listar e mostrar na mesma tela ou em outra tela o
item pesquisado
 Criar a classe de modelo Automóvel
 Criar o banco de dados via aplicação e implementar os métodos para
pesquisa, inserção, atualização dos dados.
FIM

Continue navegando