Aula 12/06 (SQLite)
-
Upload
ricardo-longa -
Category
Technology
-
view
282 -
download
4
description
Transcript of Aula 12/06 (SQLite)
PROGRAMAÇÃO PARADISPOSITIVOS MÓVEIS
Banco de Dados
Objetivos da aula
Banco de Dados Exercício
Qual banco de dados o Android tem integração?
SQLite
Cada aplicação pode criar um ou mais banco de dados.
Os bancos de dados da sua aplicação ficam localizados em:
/data/data/nome_pacote_app/databases
Um banco de dados é vísivel somente a aplicação que o criou.
Podemos criar um banco de dados de várias formas:
Programaticamente, via API;
Usando um cliente, por exemplo o SQLite Expert Personal (http://www.sqliteexpert.com/);
Ou pelo aplicativo SQLite3 através do console do emulador.
Vamos focar na melhor prática, a criação e a manutenção de um banco de dados via API.
Como criaremos um banco?
Precisamos estender a classe SQLiteOpenHelper e implementar os métodos onCreate() e onUpgrade().
Os métodos onCreate() e onUpgrade() são chamados automaticamente pelo Android quando o banco de dados precisa ser criado ou atualizado.
Através da instância da classe que estende SQLiteOpenHelper, utilizamos o método getWritableDatabase() para abrirmos uma conexão com o banco de dados, onde podemos executar comandos SQL da seguinte forma:
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL(“create table carro (_id integer primary key autoincrement, nome text not null, placa text not null, ano text not null);”);
Controlamos as atualizações do banco de dados por meio de uma versão, definida por nós, um valor incremental.
Vamos observar alguns outros comandos:
Para inserir um registro, utilizamos o método db.insert(tabela, nullColumnHack, valores).
ContentValues valores = new ContentValues();valores.put(“nome”, “Carro”);valores.put(“placa”, “AAA-1111”);valores.put(“ano”, “2008”);bb.insert(“carro”, null, valores);
É recomendado criar uma coluna com o nome _id que seja auto incremento.
Para atualizar um registro, utilizamos o método db.update(tabela, valores, where, whereArgs).
String id = “1”;
ContentValues valores = new ContentValues();
valores.put(“nome”, “novo nome”);
valores.put(“placa”, “AAA-1111”);
valores.put(“ano”, “2008”);
db.update(“carro”, valores, “_id = ?”, new String[]
{id});
Para deletar um registro, utilizamos o método db.delete(tabela, where, whereArgs).
String id = “1”;
db.delete(“carro”, “_id = ?”, new String[]{id});
Para buscar registros, utilizamos o método db.query(distinct, tabela, colunas, selecao, selecaoArgs, groupBy, orderBy), que nos retorna um objeto do tipo
Cursor, similar ao ResultSet da API do JDBC.
Cursor c = db.query(“carro”, new String[] {“_id”,
“nome”, “placa”, “ano”}, “nome=?”, new String[] {“nome
consultado”}, null, null, null);
if (c.getCount() > 0) {
Carro carro = new Carro();
c.moveToFirst();
carro.id = c.getLong(0);
carro.nome = c.getString(1);
carro.placa = c.getString(2);
carro.ano = c.getInt(3);
}
Até a próxima!