Assim como no exercício anterior, não foi apresentado qual seria a resposta correta.
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!