Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SQLite (Android SDK)

rodrigorgs
October 10, 2012

SQLite (Android SDK)

rodrigorgs

October 10, 2012
Tweet

More Decks by rodrigorgs

Other Decks in Programming

Transcript

  1. MATC89: Aplicações para Dispositivos Móveis Universidade Federal da Bahia (UFBA)

    Rodrigo Rocha e Christina von Flach 2012.2 SQLite Android SDK
  2. DatabaseHelper.java public class DatabaseHelper extends SQLiteOpenHelper { private static final

    int versao = 1; public DatabaseHelper(Context context) { super(context, "banco.db", null, versao); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE contato(" + " _id INTEGER PRIMARY KEY AUTOINCREMENT," + " nome TEXT," + " telefone TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } DatabaseHelper cria banco, se não existir
  3. DatabaseHelper.java public class DatabaseHelper extends SQLiteOpenHelper { private static final

    int versao = 1; public DatabaseHelper(Context context) { super(context, "banco.db", null, versao); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE contato(" + " _id INTEGER PRIMARY KEY AUTOINCREMENT," + " nome TEXT," + " telefone TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } DatabaseHelper convenção cria banco, se não existir
  4. DatabaseHelper.java public class DatabaseHelper extends SQLiteOpenHelper { private static final

    int versao = 1; public DatabaseHelper(Context context) { super(context, "banco.db", null, versao); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE contato(" + " _id INTEGER PRIMARY KEY AUTOINCREMENT," + " nome TEXT," + " telefone TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } DatabaseHelper convenção cria banco, se não existir altera banco para a versão atual
  5. Cursor • Toda consulta retorna um Cursor • Cursor representa

    o resultado de uma consulta e aponta para uma linha do resultado • Alguns métodos:
  6. Contato.java public class Contato { private long id; private String

    nome; private String telefone; public Contato(long id, String nome, String telefone) { this.id = id; this.nome = nome; this.telefone = telefone; } // getters e setters // toString } Classe de Modelo
  7. ContatoDao.java public class ContatoDao { DatabaseHelper dbHelper; SQLiteDatabase db; public

    ContatoDao(Context context) { dbHelper = new DatabaseHelper(context); } public void open() { db = dbHelper.getWritableDatabase(); } public void close() { dbHelper.close(); } public List<Contato> getAll() { ... } public void insert(Contato contato) { ... } public void remove(Contato contato) { ... } } Classe DAO
  8. MainActivity.java public class MainActivity extends Activity { ContatoDao contatoDao; protected

    void onCreate(Bundle savedInstanceState) { // ... contatoDao = new ContatoDao(this); } protected void onResume() { contatoDao.open(); atualizarContatos(); } protected void onPause() { contatoDao.close(); } } Activity
  9. MainActivity.java public void atualizarContatos() { String s = ""; List<Contato>

    list = contatoDao.getAll(); for (Contato contato : list) { s += contato.toString(); } textContatos.setText(s); } Listar Contatos
  10. ContatoDao.java public List<Contato> getAll() { List<Contato> list = new ArrayList<Contato>();

    Cursor cursor = db.query("contato", new String[] {"_id", "nome", "telefone"}, null, null, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast()) { long id = cursor.getLong(0); String nome = cursor.getString(1); String telefone = cursor.getString(2); Contato contato = new Contato(id, nome, telefone); list.add(contato); cursor.moveToNext(); } return list; } Listar Contatos
  11. MainActivity.java public void inserir(View v) { Log.d("teste", "inserir"); String nome

    = editNome.getText().toString(); String telefone = editTelefone.getText().toString(); Contato contato = new Contato(0, nome, telefone); contatoDao.insert(contato); atualizarContatos(); } Inserir Contato Chame na Activity, ao clicar no botão
  12. ContatoDao.java public void insert(Contato contato) { ContentValues values = new

    ContentValues(); values.put("nome", contato.getNome()); values.put("telefone", contato.getTelefone()); long id = db.insert("contato", null, values); Log.d("teste", "inserido contato com id = " + id); } Inserir Contato
  13. MainActivity.java public void removerPrimeiro(View v) { Log.d("teste", "removerPrimeiro"); List<Contato> contatos

    = contatoDao.getAll(); if (contatos.size() > 0) { Contato primeiro = contatos.get(0); contatoDao.remove(primeiro); } atualizarContatos(); } Remover Contato Chame na Activity, ao clicar no botão