Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 10 da Aula 5 - Persistência com SQLite

Eu implementei e invoquei o método no método insert() da seguinte forma:

private ContentValues toContentValues(Student student) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("name", student.getName());
        contentValues.put("telephone", student.getTelephone());
        contentValues.put("address", student.getAddress());
        contentValues.put("site", student.getSite());
        contentValues.put("note", student.getNote());
        contentValues.put("photo", student.getPhoto());
        return contentValues;
    }

    public void insert(Student student) {
        ContentValues cv = toContentValues(student);

        getWritableDatabase().insert(TABLE, null, cv);
    }

.

Gostaria de saber se está correto. Obrigado.

4 respostas

Olá Andre! Sim está correto!

Obrigado pela avaliação. Me responda uma coisa, como seria feita a implementação do método de update reutilizando este mesmo método.

solução!

Oi André,

como no seu método insert você faz getWritableDatabase.insert, é mais interessante criar um outro método apenas para fazer o update.

Caso, ainda assim, queira fazer tudo no mesmo método, você pode fazer algo:

    public void insertOrUpdate(Student student) {
        ContentValues cv = toContentValues(student);

        if(student.getId() == null) {
            getWritableDatabase().insert(TABLE, null, cv);
        } else {
            String id = {student.getId().toString()};
            getWritableDatabase().update(TABELA, cv, "id=?", id);
        }
    }

Muito obrigado Felipe! :D