Assim como no exercício anterior, não foi apresentado qual seria a resposta correta.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Assim como no exercício anterior, não foi apresentado qual seria a resposta correta.
A resposta é esta:
public class AlunoDAO {
private SQLiteOpenHelper sqlHelper;
private static final String DATABASE = "CadastroCaelum";
private static final int VERSAO = 1;
private static final String TABELA = "Alunos";
public AlunoDAO(Context context) {
Log.i("INFORMAÇÃO", "Criando o banco.");
this.sqlHelper = new SQLiteOpenHelper(context,DATABASE,null,VERSAO) {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("INFORMAÇÃO","Dropando a tabela e recriando.");
String ddl = "DROP TABLE IF EXISTS "+ TABELA + "; ";
db.execSQL(ddl);
this.onCreate(db);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("INFORMAÇÃO", "Criando a tabela.");
String ddl = "CREATE TABLE " + TABELA + "(id PRIMARY KEY, " +
"nome TEXT UNIQUE NOT NULL, endereco TEXT, site TEXT," +
" telefone TEXT, foto TEXT, nota REAL);";
db.execSQL(ddl);
}
};
}
private ContentValues toValues(Aluno aluno){
ContentValues values = new ContentValues();
values.put("nome", aluno.getNome());
values.put("endereco", aluno.getEndereco());
values.put("site", aluno.getSite());
values.put("telefone", aluno.getTelefone());
values.put("nota", aluno.getNota());
values.put("foto", aluno.getFoto());
return values;
}
public void salva(Aluno aluno) {
Log.i("INFORMAÇÃO", "Salvando aluno.");
sqlHelper.getWritableDatabase().insert(TABELA, null, toValues(aluno));
}
public List<Aluno> getLista() {
String[] colunas = {"id","nome","endereco","site","telefone","foto","nota"};
Cursor cursor= sqlHelper.getWritableDatabase().query(TABELA, colunas, null, null, null, null, null);
ArrayList<Aluno> alunos = new ArrayList<Aluno>();
while(cursor.moveToNext()){
Aluno aluno = new Aluno();
aluno.setId(cursor.getLong(0));
aluno.setNome(cursor.getString(1));
aluno.setEndereco(cursor.getString(2));
aluno.setSite(cursor.getString(3));
aluno.setTelefone(cursor.getString(4));
aluno.setFoto(cursor.getString(5));
aluno.setNota(cursor.getDouble(6));
alunos.add(aluno);
}
return alunos;
}
}
A ideia é essa mesma, Guilherme! A única coisa é que a classe que herda de SQLiteOpenHelper poderia ser uma classe separada (não anônima) mesmo!