Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Aula 12/06 (SQLite)

801 views

Published on

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

Published in: Technology

Aula 12/06 (SQLite)

  1. 1. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Banco de Dados
  2. 2. Objetivos da aula  Banco de Dados  Exercício
  3. 3. Qual banco de dados o Android tem integração?
  4. 4. SQLite
  5. 5. Cada aplicação pode criar um ou mais banco de dados.
  6. 6. Os bancos de dados da sua aplicação ficam localizados em: /data/data/nome_pacote_app/databases
  7. 7. Um banco de dados é vísivel somente a aplicação que o criou.
  8. 8. Podemos criar um banco de dados de várias formas:
  9. 9. Programaticamente, via API;
  10. 10. Usando um cliente, por exemplo o SQLite Expert Personal (http://www.sqliteexpert.com/);
  11. 11. Ou pelo aplicativo SQLite3 através do console do emulador.
  12. 12. Vamos focar na melhor prática, a criação e a manutenção de um banco de dados via API.
  13. 13. Como criaremos um banco?
  14. 14. Precisamos estender a classe SQLiteOpenHelper e implementar os métodos onCreate() e onUpgrade().
  15. 15. Os métodos onCreate() e onUpgrade() são chamados automaticamente pelo Android quando o banco de dados precisa ser criado ou atualizado.
  16. 16. 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);”);
  17. 17. Controlamos as atualizações do banco de dados por meio de uma versão, definida por nós, um valor incremental.
  18. 18. Vamos observar alguns outros comandos:
  19. 19. Para inserir um registro, utilizamos o método db.insert(tabela, nullColumnHack, valores).
  20. 20. ContentValues valores = new ContentValues(); valores.put(“nome”, “Carro”); valores.put(“placa”, “AAA-1111”); valores.put(“ano”, “2008”); bb.insert(“carro”, null, valores);
  21. 21. É recomendado criar uma coluna com o nome _id que seja auto incremento.
  22. 22. Para atualizar um registro, utilizamos o método db.update(tabela, valores, where, whereArgs).
  23. 23. 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});
  24. 24. Para deletar um registro, utilizamos o método db.delete(tabela, where, whereArgs).
  25. 25. String id = “1”; db.delete(“carro”, “_id = ?”, new String[]{id});
  26. 26. 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.
  27. 27. 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); }
  28. 28. Até a próxima!

×