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

SQLite (Android SDK)

Avatar for rodrigorgs rodrigorgs
October 10, 2012

SQLite (Android SDK)

Avatar for rodrigorgs

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