aula 12/06 (sqlite)

Post on 11-Jun-2015

282 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Aprenda alguns comandos da API de persistência do Android.

TRANSCRIPT

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!

top related