Upload
ricardo-longa
View
284
Download
4
Embed Size (px)
DESCRIPTION
Aprenda alguns comandos da API de persistência do Android.
Citation preview
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!